TimeMachineを活用してサーバをバックアップ
Up$Date: 2008-05-31 13:27:50 +0900 (土, 31 5月 2008) $ $Rev: 2950 $

Webサーバ上のデータをローカルマシンでバックアップするのに MacintoshのTimeMachineを利用してみる。

サーバで公開するHTMLファイルなどは Subversionのようなバージョン管理ソフトを利用して管理すればよい(レポジトリだけバックアップすればよい)のだろうが、 ユーザによって書き込まれたりアップされたりするデータはバージョン管理に向いてないので 定期的にバックアップをとる方が楽そうである。 サーバ上のcronでバックアップスクリプトを動かすのが一般的なのかもしれないが、 サーバが死ぬと困ったことになるので、 自宅マシンにコピーをとっておくことにする。

方針は以下のとおり。

このようにしておけば、TimeMachineを使ってサーバの内容を日付で管理できるようになる。 サーバデータのコピーとバックアップが両方必要になるが、 ミラーだと思って納得することにする。

機器構成

これは増井家の実際の機器構成(2008/5/30)である。 Mac miniに接続されたmntaというディスクをキャッシュ的に使用する。 毎日一度rsyncでmntaディスクにサーバデータをコピーし、 その中身を Airport Extreme接続のSierraというディスクにTimeMachineバックアップする。 rsyncのバックアップはmakeで起動する。

Makefile

サーバデータをコピーするための /Volumes/mnta/Backup/Makefile/Volumes/mnta/Backup/hondana.org/ にデータをコピーする。
rsyncは--deleteオプションを使い、 サーバで削除されたファイルがローカルマシンでも削除されるようにする。 (TimeMachineバックアップでは削除も含めて完全なバックアップが作成されるはずなので)
hondana:
        rsync -avz -e ssh --delete hondana.org:/home/masui hondana.org
        rsync -avz -e ssh --delete hondana.org:/www.hondana.org hondana.org

launchdの設定

上のMakefileを毎日実行するために以下のような backup.hondana.plist ファイルを ~/Library/LaunchAgents/ に作成する。 このファイルはlaunchdにより実行される。 普通にcron式に書いてもいいのだが、 このような形式のplistファイルを Library/LaunchAgents に記述するのがMacintosh流らしい。 この指定により、毎日4:00に /Volumes/mnta/Backup ディレクトリで make hondana が実行される。 launchdについては 白山氏の記事が詳しい。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
  <key>Label</key>
  <string>backup.hondana</string>
  <key>ProgramArguments</key>
  <array>
    <string>make</string>
    <string>hondana</string>
  </array>
  <key>StartCalendarInterval</key>
  <dict>
    <key>Hour</key>
    <integer>4</integer>
    <key>Minute</key>
    <integer>0</integer>
  </dict>
  <key>WorkingDirectory</key>
  <string>/Volumes/mnta/Backup</string>
</dict>
</plist>
plistのXMLを書くのが面倒だが、 Lingonというソフトを使うとGUIで作ることができる。

TimeMachineの設定

「システム環境設定」のTimeMachineパネルを利用し、 /Volumes/mnta/BackupSierra にバックアップする設定をする。

懸案事項


Toshiyuki Masui @ pitecan.com $Date: 2008-05-31 13:27:50 +0900 (土, 31 5月 2008) $