今まで気が向いたときに手動でバックアップしていたが、面倒で忘れがちなので自動化することにした。バックアップ元マシンはノート 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