cron と rsync でバックアップ自動化

今まで気が向いたときに手動でバックアップしていたが、面倒で忘れがちなので自動化することにした。バックアップ元マシンはノート PC で、バックアップ先マシンは玄箱Pro (Debian) だ。そのうち、Zaurus と NetWalker のバックアップも考えないとな。
以下、作業メモ。

バックアップ元マシンでキー生成する。このときパスフレーズは空にしておく。

# ssh-keygen -t rsa

公開鍵をバックアップ先マシンにコピーする。

# scp /root/.ssh/id_rsa.pub kurobox:/home/user/tmp

公開鍵を authorized_keys に追加する。

kurobox# cat /home/user/tmp/id_rsa.pub >> /root/.ssh/authorized_keys

バックアップ先マシンへの root による ssh ログインを許可する。
セキュリティを高めるなら、指定したコマンド実行のみを許可する forced-commands-only もあるが、今回は LAN 内の通信なのでそこまでしない。というか、Debian はデフォルトで yes だね。

kurobox# vi /etc/ssh/sshd_config
PermitRootLoin yes

ssh デーモンを再起動して設定を反映する。

kurobox# /etc/init.d/ssh restart

root でパスフレーズ無しでログインできることを確認する。

# ssh kurobox
kurobox# exit

rsync でバックアップできることを試す。

# rsync -avz --delete -e ssh /etc/ /home/user/backup/etc/

うまくいったら、cron に登録する。
今回は backup というシェルスクリプトを作成して、/etc/cron.daily に入れた。

# cp backup /etc/cron.daily/

参考にした Web ページ:
http://www.jitaku-server.net/backup_ssh.html
http://emperor.yz.yamagata-u.ac.jp/~takayama/manu_dir/rsync+ssh+cron.html