話は前後しますが、「その後...」で書いた、バックアップというのを詳しく説明しておきます。
「データベースの自動バックアップを、cronで行う」の応用で、データの同期をかけることにしました。
rsync(http://rsync.samba.org/)というツールを用います。scpと似たような機能をもっているのですが、こちらの方が多彩なオプションがあり、データの同期をかけるのに最適です。
rsyncはscpと同様sshを用いたセキュアなファイル転送を行うので、「データベースの自動バックアップを、cronで行う」と同様に、公開鍵の交換を行ってからcronに設定すると、定時のデータ同期が可能です。
わたしは、下記のようなスクリプトで同期をかけるように設定しました。
#!/bin/bash
workdir=/root/sync
timestamp=`date +%Y%m%d%H%M`
if mkdir $workdir; then
echo Work directory : $workdir
else
exit
fi
rsync -auvz --delete /root/test/ 192.168.1.36:/root/test/ >/root/log/log$timestamp.txt
rm -rf $workdir/
exit
<オプションの説明>(rsyncの日本語訳ページhttp://www.infoscience.co.jp/technical/rsync/index.htmlより抜粋)
-a, --archive -rlptgoD と同じです。再帰的に全ての情報を維持する手っ取り早い方法です。
-u, --update アップデートのみ許可 (上書き禁止)
-v, --verbose 転送の間の情報を詳しく表示します。デフォルトでは rsync は何も表示しません。単一の -v で、転送されているファイルと転送の終了の概要を表示します。2つの -v フラッグでは、スキップされたファイルと転送終了の情報を表示します。2つ以上の -v は rsync のデバッグの時にだけ使われます。
-z, --compress 受信ファイルを圧縮compress file data
--delete 送信側に存在しない、受信側にあるファイルを削除します。転送から除外されたファイルは --delete-excluded を使わない限り削除から除外されます。
ディレクトリで再帰的に実行されていなければ、このオプションは効果がありません。
あと、おけつに、>/root/log/log$timestamp.txtをつけたら、ログもとれるようになりました。