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