Top | Wiki | Blog | Github  

Leopard (MacOSX)

rsync

rsync を用いたバックアップ,もしくは同期は古くから行われていて,OSXでも使えます.特に,OSX の rsync は,リソースフォークの転送にも対応しているのがポイントです.

用例(1)

ディレクトリ/path/to/hoge をディレクトリ /path2/to2/hoge に同期する場合

$ sudo rsync -avhE --delete --stats /path/to/hoge/ /path2/to/hoge/ --dry-run

rsync で気をつけなければならないのは,強力なツールゆえにちょっとしたミスが命取りという点です.上のコマンドは,–dry-run オプションがついているので非破壊試験が行われます.-v オプションがどのような転送を行うかを明示してくれるので,その出力を確認した上で –dry-run オプションを外して実試行します.

よくあるミスは,/path/to/hoge というように,最後のスラッシュを付けない場合です.こうすると,転送先に /path/to/hoge ディレクトリを作成し,その中に /path/to/hoge ディレクトリの中身を転送します.もしも,/path2/to2/hoge/hoge というディレクトリが存在していたとなると,すべて上書きしてしまうので悲劇です.

-a(アーカイブ用オプション.-rlptgoD と同じ)
-v(転送情報の詳細表示)
-h(ログを見やすく表示)
-E(リソースフォークをコピー)
--stats(統計情報を詳しく表示)
--delete(転送元に存在しない転送先のファイルを削除 = 同期モード)
--dry-run(非破壊転送試験)
--exclude="/hoge/"(転送対象からの除外ディレクトリ/ファイル)
--progress(転送状況をリアルタイム表示)

除外対象が複数ある場合はリストを利用することもできます.詳しくは公式サイトを参照してください.参考までに私が使っているオプション.

--exclude="Caches/" --exclude="/.Trash/" --exclude="Movies"

スラッシュにも意味があるので要注意.

用例(2)

rsync はネットワーク越しでも使えます.

$sudo rsync -avhE --delete --stats /path/to/hoge/ user@hoge.hoge.com:/path/to/hoge/ --dry-run

SCPのようにホストを指定するだけです.簡単!ただ,相手先のホストがリソースフォークに対応していない場合はエラーが出る場合があります.そのときは -E を外します.

エラーメッセージ

場合によっては次のようなエラーが表示される.

copyfile(hoge,hogehoges, COPYFILE_UNPACK) failed:62

いくつかのファイル転送に失敗した模様.パーミッションの制限により生じることが多い.例えば,インストールした直後のアプリケーションを一度も起動せずに,rsync を実行すると出ることがある.

send_files failed to open "/tmp/..__hoge__.lock.hogehoge": No such file or directory

原因不明のエラー.少なくとも -E オプションを付けなければ生じない.なんだろか.

Time Machine

Leopard になってバックアップの新機能として搭載された Time Machine ですが,システム全体を Time Machine から復元するのは少し抵抗がありました.

これまでは,iBackup でシステムのデータとユーザデータを保存しておき,何かあったら OSX のインストールから始め,iBackup のリストア機能でデータを戻していました.

特にそれで問題なかったんですが,iBackup でシステム全体のバックアップを取るのは,週に一回程度.

何回かシステムを入れ替える機会があったことを思い出すと,実は一週間に一回のバックアップ頻度ではちょっと駄目ですね.一週間分の生産物を考えると,できるだけ頻繁にバックアップをできている方が良いわけです.

さて,ということは,確かめなければならないのが,Time Machine で定期的に作成するバックアップから,果たしてシステムのリストアが正しくできるのか?というところです.

以下は,実際にそれを試した結果得られた情報です.

タイムテーブル

(08:50)OSXのインストール開始

(09:17)再起動後,Leopard のようこそムービーの再生.情報転送の開始準備(約5分ほどかかる)

(09:23)転送開始./Users など全部で約82[GB]のデータを転送.

(11:00)再起動後,システムのリストア完了!

基本的に問題なくリストアできました.使えるじゃん!Time Machine!

例外として,Intel の開発ツール系について多少転送エラーがありましたが致命的なものではありません.(ドキュメントの一部が権限の問題で転送されなかったようです.)

ネガティブリスト

以下は,リストア後に対処が必要だった項目です.

  1. MacFUSE は再インストールが必要
  2. ソフトウェアアップデートは必要(あたりまえか)
  3. ファイヤーウォールの設定がリセットされていた
  4. Time Machine のON/OFF
  5. Norton AntiVirus は再インストールが必要
  6. Sleepimage が作成される.
  7. Spotlight と Locate のデータベースは作成し直し
  8. VPNClinet は再インストールが必要
  9. Mail.app は,メールボックスの再読込が必要(POPアクセスではないのですぐ終わる.3万通で約1.2分)
  10. プリンタドライバは,再インストールおよび再設定が必要
  11. iCal のデータ出力先が,.mac に変更されている場合がある(常にではない様子)
  12. バッテリースケジュールの再設定が必要な場合がある

ポジティブリスト

以下,駄目かな〜と思っていたが,しっかりしていた事柄です.

  1. ICC は実用的に問題なく使えた.(iBackup だと再インストールが必要.すごく時間がかかる)
  2. ログインアイコン,アカウントはしっかり復元される.
  3. ドックのカスタマイズはしっかり復元される.
  4. メニューバーのアイコンはしっかり復元される.
  5. ATOK2007は,再インストールする必要がない
  6. 無線の情報,ネットワーク設定はしっかり復元される
  7. Spaces の設定はしっかり復元される
  8. ログイン項目はしっかり復元される.
  9. iTunes のデータはしっかり復元される.(ただし,ゲームなどは再認証が必要)
  10. インストールしてあるソフトのライセンスキーを再入力する必要がない.
  11. Tex 環境がしっかり復元される.(そのままMakeしてもコンパイルできる!)