送信側でrsyncで送信先マシン専用の鍵ファイルを作成する。パスフレーズはなし。
sudo ssh-keygen -b 2048 -t rsa -N '' -f /root/.ssh/id_rsa-backup.hoge.org
/root/.ssh/config に以下のエントリを追加する。
Host backup.hoge.org IdentityFile /root/.ssh/id_rsa-backup.hoge.org Port 222
受信(サーバ)側はJailであると望ましい。/etc/ssh/sshd_config で
Port 222 PermitRootLogin forced-commands-only
とする。 /root/.ssh/authorized_keys に上記で作った鍵ファイルのうち公開鍵側をオプション付きで登録する。
command="rsync --server -tvlogDtpr --delete . /home/backup/src.hoge.org/",no-pty,no-port-forwarding ssh-rsa AAAA....
commandオプションに指定するのは、送信側が実行するrsyncコマンドを元にして
となる。
転送しないディレクトリ・ファイルを記述した RsyncExclude を作って
rsync -tvlogDtpr --delete --exclude-from=RsyncExclude / backup.hoge.org:/home/backup/src.hoge.org/
を定期的に実行するようにすれば完了。
RsyncExcludeは結構長くなってしまった。
/alt /dev /bin /sbin /modules /modules.old /kernel.* /stand # /home /home/ncvs /home/tmp /proc /tmp # /usr /usr/X11R6 /usr/bin /usr/compat /usr/etc /usr/games /usr/home /usr/include /usr/info /usr/lib /usr/libdata /usr/libexec /usr/man /usr/obj /usr/ports /usr/sbin /usr/share /usr/src /usr/tmp # /usr/local /usr/local/apache.bak /usr/local/bin /usr/local/dcc /usr/local/include /usr/local/info /usr/local/lib /usr/local/libdata /usr/local/libexec /usr/local/man /usr/local/sbin /usr/local/share /usr/local/www # /var /var/local/etc/**/ok /var/local/etc/**/control /var/local/service/**/ok /var/local/service/**/control /var/qmail/queue /var/run/log /var/tmp /var2
rsync でディレクトリの同期を取るも参考になる。