2014年3月31日月曜日

バックアップ(pdumpfs)

 転ばぬ先のバックアップ。そいつが問題なのだった。
 今まではデスクトップ(Windows)に外付けハードディスク(お立ち台使用)を接続し、ThinkPad(FreeBSD)からrsyncを使ってLAN経由で同期していた。デスクトップからも同様。このやり方だと、完全同期ではないので過去に削除したファイルがバックアップにまざって残りつづけてしまう。残ることは問題ではないのだが(それが目的だから)、まざってしまうのが問題だ。
 バックアップからもどしたら削除したはずのファイルをふたたび、手作業で削除しなければならない。更新されたファイルの過去バージョンは復活しないし。
 昔はまるごとSubversionというバージョン管理システムにつっこんでいたのだが。パソコンをかえたとき、なんか面倒になってやめてしまった。

 そんなとき、Appleの「Time Machine」のことを知った。

 日付をつけたフォルダの下に丸ごとバックアップされるので過去のスナップショットをとりだすことができる、という。これはいい。容量が心配だが、最新から差分だけをバックアップし、かわっていないファイルはハードリンクになっているので消費容量は差分分だけ(だから更新したファイルの過去バージョンもとりだせる)。
 あっ、その手があったか、と思ったね。頭いい。
 いっそパソコンをAppleにしてしまおうか、と思ったけれど、どこかに同じようなツールがあるのではないか、と探してみたところ、pdumpfsというものを見つけた。
 というか、このツールのことは以前、「横着プログラミング 第8回: pdumpfs: 毎日のスナップショットを保存する」で読んでいるぞ、おれ。すっかり忘れていた。
 しかも最新のrsyncは同じことができる、という。(--link-destオプション)
 まぁ、日付フォルダの管理が面倒なので、そのあたりを勝手にやってくれるpdumpfsを導入(Windows版もある)。LAN対応されているか、どうかはわからないが(manマニュアルには載ってない)、面倒なのでデスクトップ、ThinkPadそれぞれにお立ち台を接続してバックアップすることにした(二台もっているのだ)。
 ついでにバックアップ対象をホームディレクトリの下、全部にしてやった。

 実はFATではできなかったのでNTFSでもハードリンクは未サポートとばかり思っていた。だから「Time Machine」のような真似はできないと。ところがサポートされていて、なのでpdumpfsもrsyncの–link-destオプションも使えるのだった。

 それにしてもpdumpfsの存在に気づかなかったら「MacBookAir」と「Time Cupsule」を衝動的に買ってしまうところだったぜ(消費税もアップすることだしと)。いやぁ、あぶなかった。