http://www.infoscience.co.jp/technical/rsync/rsync.html#option
rsync でサーバ間バックアップの、
/usr/local/bin/rsync -av / www.smb.net:/usr/Backups/hotshot/
をすると、
var/virusmails/virus-yZtcv94rrLED var/virusmails/virus-zZx7Ezo+hqRz sent 169164700 bytes received 917357 bytes 291485.96 bytes/sec total size is 14195718340 speedup is 83.46 rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1040) [sender=3.0.5]
とエラーする。
FreeBSD 6.xな外向けのメールサーバのアーカイブを別のサーバにバックアップしよう、というメモ。rsyncで簡単に実現出来ないだろうかと。 WebDAVでもよいけれど、バックアップ用途ならばrsyncのほうが性能を出せるかも。WebDAVにはhttp(80/tcp)を開けるだけという手軽さがあるけど、rsyncもsshを開けるだけで、手軽さという意味では変わらないと思う。
http://blog.livedoor.jp/tuzzy92/archives/52541703.html
その名は --inplace
# man rsync | grep inplace
意味は ファイルの中身の一部分を変更する場合に、目的のファイルに直接書き込んでしまうことを指示。このオプションが無い場合、一時ファイルを作って完成してから置き換える。ギガ単位の巨大なファイルをバックアップする場合は必須。
※http://omake.accense.com/wiki/LinuxBackupScript より引用
は、実はあまりない。
FreeBSDは5.xの頃から、デフォルトではsshdすら起動しない設定だが、これを修正する。
vi /etc/rc.conf
sshd_enable="YES"
とだけ書いておけばいい。デフォルトではパスワード認証を許可しない(公開鍵認証のみ)という、少し厳しめの設定がされていて、通常運用では修正が必要だが、今回はそのままでもいい鴨。 portsから
する必要があるので、
# portinstall net/rsync
しておく。rsyncdを起動する必要もないので、インストール後の設定も不要。至ってシンプルだ。
リモートのファイル転送では、プッシュ(被バックアップ側が処理を実行)かプル(バックアップサーバ側が処理を実行)かという実装の選択肢があるが、今回はプッシュで行くことにする。
公開鍵の登録、バックアップ先ディレクトリの設定等を行い、被バックアップ側の各ホストに、バックアップの実行ユーザー(例えば '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/
というコマンドをつくり
だけだ。 vi /etc/crontab
# Backup to Piano 30 2 * * * root /root/bin/backup_to_piano.sh
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
で、追加書き込みになります。
世代バックアップへの対応、ウィルスチェック等が今後の課題か。 マシンAにマシンBでのユーザー情報を追加する作業
http://blog.b-shock.co.jp/pooza/2006/01/freebsd_60.html
http://locs.bw.nitech.ac.jp/~kobayashi/computer.html#fedora03
2018-10-08 (月) 11:34:40