rsyncでバックアップしてみる

想定する環境はシステムディレクトリが/として/mntに他のHDDがマウントされているときです
何も考えずに
rsync -av --delete / /mnt/201005004/
みたいにしてしまうと

/mntにファイルを書き込んだものをrsyncがまたバックアップして・・・というようになりディスクが無駄になります

rsync -av --delete-excluded --exclude='/mnt/*' / /mnt/201005004/
このようにするとうまくいきます。
除外ファイルを/mntと指定してもできますがその場合ディレクトリが作成されないので一応このようにしました。
delete-excludedオプションは除外されたファイルを送信側で削除するオプションです。今回は意味がないですが、前回はあったが、今回は除外したファイルを削除したい!といったときに便利です。
delete-excludedオプションはdeleteオプションも含んでいます

あとこちらの方などの方法を見るとsysとprocディレクトリはバックアップしなくても大丈夫そうです。
実際にdumpで取ったフルバックアップファイルを見てもそこは空になっていました。
まとめると↓のコマンドでおk
# today=`date +%Y%m%d`
# mkdir $today
# echo "- /sys/*" >> exc.txt
# echo "- /proc/*" >> exc.txt
# echo "- /mnt/*" >> exc.txt
# rsync -a --delete --delete-excluded --exclude-from=/mnt/exc.txt / /mnt/20100505/
※この/mntなどは第一引数で指定したディレクトリを/とみなした相対パスです。
rsync -av --exclude-from=exc.txt /mnt /hoge
などとした場合は/mnt/mntが除外対象となります
参考リンク
http://www.infoscience.co.jp/technical/rsync/rsync.html