無線LANも速くなったし、なにか新しいことをしてみようか。
重複ファイルの削除をやってみよう。 いろんなディレクトリに適当にファイルを保存していると、 いつのまにか同じファイルがあちこちにあったりする。特に自分で作ったファイル。 しかも、ファイル名が違うのに実は同じファイル、だったりするのでタチが悪い。 実際、月に一度ぐらい、同じ画像ファイルを見つけたりすることがあるのだ。
全ファイルの一覧を取得して、総当たりで比較するという、最もストレートな方法もあるが、 さすがにファイルが13万個もあると、死ぬほど時間がかかりそうだ。 (ていうかなんでそんなにファイルがある?)
で、表題の通り、md5sumを使ってやってみるのだ。 md5sumというのは、ハッシュ値を計算してくれるプログラムだ。 こいつを使って、全ファイルのハッシュ値を計算させるのだ。 同じファイルなら、ハッシュ値も同じになるので、同じハッシュ値が 2つ以上あらわれるかどうかを調べることで、同じファイルがどれとどれかわかる。 バイナリでの比較なので、jpegの圧縮率違いとか、 mp3のタグ違いとかは検出できないのが難点だが。
シェルスクリプトで、findしてmd5sumしてsortしてuniqした結果、 いろいろ見つかったので、削除していった。 無条件に重複を削除していけばいいわけではないので、 ここだけは手作業でやるしかない。 手間は掛かったが、そのかいあって、だいぶスッキリした気分になった (気分だけかも)。
ついでに思わぬ副次効果が。 この全ファイルのハッシュ値を計算した結果を保存しておいて、 翌日、また全ファイルのハッシュ値を計算した結果と比較すると、 今日一日のファイルの追加・削除・変更が全部わかるのだ。 例えば、backup-cassava というスクリプトを修正したとすると、
1c1 < 174d3eeecf8ddd38815f23d8131447f4 backup-cassava --- > 5dbea090a04bd1edcc729f325a47367c backup-cassavaという具合に変更がわかる。 便利なので、毎日1時間かけて流して、差分を自動的にメールするようにした。 さぁみんなも、レッつ差分!!
スキャン間隔をもっと短くして、/etc/とか/var/log/とかを監視させれば、 IDSとしても使えるかもしれない。(笑)