#contents *Rsync de backup [#y22e59e5] FreeBSD 6.xな外向けのメールサーバのアーカイブを別のサーバにバックアップしよう、というメモ。rsyncで簡単に実現出来ないだろうかと。 WebDAVでもよいけれど、バックアップ用途ならばrsyncのほうが性能を出せるかも。WebDAVにはhttp(80/tcp)を開けるだけという手軽さがあるけど、rsyncもsshを開けるだけで、手軽さという意味では変わらないと思う。 **FreeBSDの準備 [#q0e1fdad] は、実はあまりない。~ FreeBSDは5.xの頃から、デフォルトではsshdすら起動しない設定だが、これを修正する。 vi /etc/rc.conf sshd_enable="YES" とだけ書いておけばいい。デフォルトではパスワード認証を許可しない(公開鍵認証のみ)という、少し厳しめの設定がされていて、通常運用では修正が必要だが、今回はそのままでもいい鴨。 portsから **rsyncをインストール [#afb324ce] する必要があるので、 # portinstall net/rsync しておく。rsyncdを起動する必要もないので、インストール後の設定も不要。至ってシンプルだ。 #ref(rsync_option.gif) リモートのファイル転送では、プッシュ(被バックアップ側が処理を実行)かプル(バックアップサーバ側が処理を実行)かという実装の選択肢があるが、今回はプッシュで行くことにする。 公開鍵の登録、バックアップ先ディレクトリの設定等を行い、被バックアップ側の各ホストに、バックアップの実行ユーザー(例えば 'backupman')を作成しておいてもよいだろう。 そして、その実行ユーザーのホームディレクトリに、シンボリックリンクを集めたディレクトリを作る。 > mkdir ~/Backups_rsync > cd ~/backup > ln -s /etc etc > ln -s /usr/local/etc local.etc > ln -s /usr/local/www/data htdocs > ln -s /usr/local/mailman mailman といった具合に。 お察しの通り、これらはバックアップ対象ディレクトリへのシンボリックリンク。お好みに合わせて、好きなだけリンクを作るといい。 以上の準備が終われば、あとは以下のコマンド /usr/local/bin/rsync -vzrptgoL --delete /root/Backups/ piano.smb.net:/usr/Backups/Hotshot/ を用意する。なお、コマンドオプションで、-avz としたいところであろうが、-a は、-rlptgoD オプションと同義であり、l を含むため、コピー元のシンボリックリンクまで反映してしまい、か・な・り・ファンキーなことになってしまうので要注意!!~ テストすると、 : : mailman/tests/msgs/ mailman/tests/msgs/bad_01.txt sent 430859674 bytes received 217148 bytes 6029046.46 bytes/sec total size is 560331906 speedup is 1.30 と動作確認できる。このままcrontabに書き込むのはちょっと長いので vi /root/bin/backup_to_piano.sh として #!/bin/sh /usr/local/bin/rsync -vzrptgoL --delete /root/Backups/ piano.smb.net:/usr/Backups/Hotshot/ というコマンドをつくり **crontabに書き込む [#tde4522a] だけだ。 vi /etc/crontab # Backup to Piano 30 2 * * * root /root/bin/backup_to_piano.sh **鍵交換認証 [#n6b51802] http://phys8.s.chiba-u.ac.jp/nakayamal/machines.html#ssh02 アクセスする側で、 ssh-keygen -b 1024 -t dsa してid_dsa.pubを作り、アクセス先の~foo/.ssh/へhotshot_id_dsa.pub などとリネームの上コピーし、 % cp hotshot_id_dsa.pub authorized_keys する。既にauthorized_keys が存在している様なら、 % cat ~/.ssh/hotshot_id_dsa.pub >> ~/.ssh/authorized_keys % chmod 600 ~/.ssh/authorized_keys で、追加書き込みになります。 **To Do [#k3c49221] 世代バックアップへの対応、ウィルスチェック等が今後の課題か。 マシンAにマシンBでのユーザー情報を追加する作業 http://blog.b-shock.co.jp/pooza/2006/01/freebsd_60.html http://locs.bw.nitech.ac.jp/~kobayashi/computer.html#fedora03 ---- #counter([total|today|yesterday]); &lastmod; ----