rsyncとsshを使って自動バックアップその2
データのバックアップは毎日深夜に自動で処理させる。自動処理のためには受信サーバへのログイン時にパスワードを聞かれないようにしなくてはいけないので、まずsshのキーを用意して設定する。設定方法については以下のページを参照。
パスワードなしでSSHログイン
この時点で、送信サーバから受信サーバへ、パスワードの入力なしでログインできるようになっていることとする。そしてrsyncの設定。rsyncにはいろいろオプションがあるが、以下のオプションを使用する。
-a アーカイブモードを使用
-u アップデートのみ許可
-z 受信ファイルを圧縮
-e 引数にsshを指定してトンネル経由で転送
–delete 送信側にないファイルが受信側にある場合は削除
なおsshについては、不正アクセスを減らすためにポート番号を変更してあるので、引数内でポート番号も合わせて指定する必要がある。結論として、以下のコマンドになる。
/usr/bin/rsync -auz –delete -e “/usr/bin/ssh -p 12345″ /local/files/ ruser@remote.host:/remote/files/
このコマンドで、無事転送することができた。あとはこれをcron設定すれば出来上がり。VPSを借りる以外に余計な費用は一切かかっていないけど、サーバ会社を分散しておけばまずデータを失うことはないだろう。
注釈:deleteの前はハイフン2個(なぜか1個で表示されるのはWordPressのせいか)。