たまには日記の一つでも。

28にしてはじめたバイオリンの記録と、ときどき日曜ハッキング

[CentOS5][backup] rdiff-backupは簡単便利

宅内サーバのバックアップをどうするか・・・ということで、amandaの仮想テープと格闘していたのだが、テープ領域を使い切ってからテープチェンジするにはどうすればいいんだ(そのままだとamdumpのたびにテープチェンジしてしまう)・・・?とか、じゃあ仮想テープのサイズを小さくしてテープ数を沢山にしよう、と思っても、一度のamdumpでテープに入りきらない場合はどうなるんだ・・・?とか、もうとにかく面倒。

とっとと諦めて代々手段を探していたら、rdiff-backupなるものを見つけた。

サーバのリモートバックアップをさせたい − @IT
コマンド一発(remove-older-than有と無しで2発か・・・)で差分+世代管理バックアップができる。これは楽過ぎる。

CentOS5/i386だと、rpmforge-release-0.3.6-1.el5.rf.i386.rpmこの辺をとってきてインストールして、yum install -y rdiff-backupすればすぐ使える。

とりあえず remove-older-thanに1Y(1年)を指定してcronに仕込んだ。/bkupにバックアップ用のHDDをマウントしてある。

/usr/bin/rdiff-backup --print --remove-older-than 1Y /bkup/rdiff/sv01/home
/usr/bin/rdiff-backup --print /home /bkup/rdiff/sv01/home
/usr/bin/rdiff-backup --print --remove-older-than 1Y /bkup/rdiff/sv01/opt
/usr/bin/rdiff-backup --print /opt /bkup/rdiff/sv01/opt
/usr/bin/rdiff-backup --print --remove-older-than 1Y /bkup/rdiff/sv01/etc
/usr/bin/rdiff-backup --print /etc /bkup/rdiff/sv01/etc
/usr/bin/rdiff-backup --print --remove-older-than 1Y /bkup/rdiff/sv01/var
/usr/bin/rdiff-backup --print /var /bkup/rdiff/sv01/var

これだけ。うちはサーバ一台しかないので、ローカルのみだけど、リモートもssh経由でとれるらしいので、一台のサーバのHDDに集約してバックアップしたい場合にはかなり重宝するのでは。

唯一の不満というか足りない機能としては、HDDの残量が許す限り差分を残す、例えば-200Mと指定すると、HDDの残量が200M以上になるまで古い順から消すとか、そんなオプションが欲しい。remove-older-thanのパラメータをディスクの残量を見ながら書き換えていくようなスクリプトを自分で書けばなんとかなりそうだけど。