rsyncで簡単にバックアップサーバーを構築
今週、お客さんが契約していたVPSが削除されてしまうという事件が発生。。
(お客さんが契約更新のメールに気付かずに、契約更新日を過ぎてしまったようだ。。)
DBはバックアップしておいたからよかったものの、コンテンツなどはなくなってしまった。
これを踏まえ rsyncで簡単にバックアップシステムを構築。手順は次のような感じ。
- バックアップ用ユーザを作成(バックアップ機、サービス機)
- sshの鍵作成&配布
バックアップ機で
$ ssh-keygen -N "" -t rsa $ ssh-copy-id service.host:
パスフレーズなしでログインできること確認
- バックアップ機にスクリプト配置
以下のような感じ
#!/bin/sh CONF=`dirname $0`/backup.conf RSYNC_CMD='/usr/bin/rsync -a' cat $CONF | { while read P_SRC P_DST; do $RSYNC_CMD $P_SRC $P_DST done } exit 0
設定ファイル(backup.conf)は、
service.host1:/path/to/dir1 data/service.host1 service.host1:/path/to/dir2 data/service.host1 service.host2:/path/to/dir1 data/service.host2
こんな感じ。
- cronに設定
0 2 * * * sh backup.sh
さくっと構築できる割に効果は大。新しいサーバーが追加になっても5分でバックアップ設定できる。