Focus of Interest -info-
Clumns for iOS, OS X, and more...
Navigation

rsyncによるバックアップ

 Mac OS XでのローカルディスクのバックアップはTime Machineで完璧だが、FireWireやUSB接続の外付けHDDを丸ごとバックアップするときはTime Machineのような履歴は必要ない場合がある。
 数あるバックアップツールの中でも、
Backuplist+はフリーウェアだし、rsyncのフロントエンドなので信頼性が高いことからも重宝しており、Snow Leopardでも全然問題なく動いてきた。
 ところが、ベータリリースである8.0.2へ移行したところ、パーミッションエラーを吐くようになったので、これを機にいろいろと調べてみた。するとバックアップ先がNASだったり、
Time CapsuleのようにファイルシステムがHFS+の場合は、ちょっとしたコツが必要なようだ。
 
Backuplist+ 8.0.2にはrsync 3.0.8がバインディングされているが、rsync 3ではMac OS Xを正式にサポートするようになった。そこで、Time Capsuleにバックアップする場合は、サポートのページに記載があるように、次のオプションを"Expert options"で指定すると良いことになっている。

-aHAXNx --fileflags --force-change --protect-decmpfs --inplace --stats -v

 ところが、8.0.2ではこれだけでは
rsyncがchownエラーをコンソールに吐き続けることになる。-aオプションは-rlptgoDと同等であるが、どうもowner, groupオプションが悪さ(?)をしている模様。そこで、以下のようにオプション指定すると、エラー無しで動くようになった。

-rltpDHAXNx --fileflags --force-change --protect-decmpfs --inplace --stats -v

 ちなみに、
--inplaceは大きなファイルを置換しながらバックアップするオプション。通常rsyncはいったんテンポラリファイルにコピーした後にファイルを書き戻す処理をするが、巨大なファイルのバックアップの場合はこのオプションで高速化が可能になる。このほか、--protect-decmpfsHFS+圧縮に対応したオプション、-AはWindowsとの互換性を取るためのACLを有効にするオプション、-XはUTF-8文字コードに関するオプション…ということらしい。

 …という訳で
rsyncをMac OS X上できちんと理解して動かすには、なかなか敷居が高いことが分かった次第。バックアップと一言で言っても、実はいろいろと大変で、ユーザに何も考えさせずに動くTime Machineがいかに良くできているか、改めて認識した。