fision: 同一内容のファイルを単一 i-node にまとめる2006年09月05日 08時12分44秒

pdumpfs を使ってバックアップを取っている。特定の日のファイルを全て、そのままのディレクトリ構造で保存しておきたいからだ。pdumpfs のバックアップは月に一度しかやらないが、ファイルがたまっていく。pdumpfs でも明記されているが、長期にわたって続けていると cp や mv などの影響で複製がどんどん増えていくのも困り物だ。

同じ内容のファイルをハードリンクに変えるプログラムを探したが見つからなかった。同じ内容のファイルを探して、削除するプログラムはたくさん見つかったが。同じ内容だからといって、消されては困るのだ。

そこで、同一内容のファイルを一つの i-node にまとめるプログラムを書いた。指定されたディレクトリ内のファイルの大きさでまとめ、同じサイズのファイルを比較する。もし、ファイルの内容が同じと判定されたら、新しい方のファイルを削除し、古い方のファイルへのハードリンクに変換する。ファイルを同じ i-node に融合、File Inode fuSION をするプログラムなので、取り敢えず、fision と命名とした。fision-20060901.tar.bz2からダウンロード出来る。

まだ、開発版だが GPL で公開することにした。プログラムのオプションは後で、変更する予定である。また、初期の設定では、削除とハードリンクをしないようにしてある。-e オプションを与えると、実際に削除とリンクをする。最初は ffusion でいこうと思っていたが、既にその名前のプログラムが存在したため、性急に改名した。恐らく、プログラムの名前も変えると思う。追記。

大きいディスク上にある大量のファイルに対して、動作させることを目的で始めたが、まだまだ改良の必要がある。今のままでは、まだまだメモリを喰いすぎてしまう。__sun を定義すると、必要なメモリは少なくなるが、恐らく大した違いにはならない。

次回不具合が見つかっています。このバージョンは使わないで下さい。追記