rsnapshot

Pull 型のリモートバックアップツールです.
つまりクライアント A からサーバ B にバックアップしたい場合, サーバ B に rsnapshot をインストールして
サーバ B から cron とかで起動してクライアント A からデータを引っ張りこむことでバックアップします.

Mac なら Darwin port,FreeBSD なら ports で入ります.
その他の OS は未調査.



1. 設定ファイルを作成

適当に設定ファイルを作ります.FreeBSD なら /usr/local/etc/rsnapshot.conf.default という設定のサンプルファイルがあります.
これを /usr/local/etc/rsnapshot.conf としてコピーするなどして利用すればいいでしょう.

以下このようにコピーしたとします.


2. 設定ファイルを編集
2点注意があります.
・設定はタブ区切りで

ディレクトリ名の最後に/を必ずつける

以上に注意して編集を行います.

以下主要項目について説明します.

snapshot_root

バックアップの置き場を指定します.

cmd_*

各コマンドへのパスです.環境に合わせて設定してください

interval

各コマンドオプション(後述)に対していくつまでバックアップを取るかを設定します.
rsnapshot では過去のバックアップを残しますが,さすがに全部残すとディスクがすぐに満タンになってしまうので
ローテートして古いバックアップは消去するようになっています.

例えば僕の環境では,インストール時には

interval        hourly  6
interval daily 7
interval weekly 4
#interval monthly 3
となっていました.これは
・hourlyオプションでは hourly.0 ? hourly.6
・dailyオプションでは daily.0 ? daily.7
・weeklylyオプションでは monthly.0 ? monthly.4
・monthlyオプションは設定無し
を意味します.
つまり 数字 + 1 個までバックアップを取ることになります.

最新のバックアップは *.0 で,これが *.1 → *.2 というようにローテートしていきます.
さらに hourly の最も古いバックアップが daily.0 にローテートされ,
daily の最も古いバックアップが weekly.0 にローテートされます.

include/exclude

ここで指定した文字列を含むファイルパスに対して含める/除外することができます.
rsync の include/exclude と同様です.

backup

バックアップを取りたいディレクトリを指定します.
rsync と同様 ユーザ名@ホスト名:/path/to/dir の形で記述することでリモートマシンのディレクトリを指定できます.
リモートの場合は ssh の公開鍵を渡すなどして自動ログインできるようにしておいたほうが良いでしょう.



3。コマンド

シンタックスチェック

 $ rsnapshot -c <config_file> configtest 

・シミュレーション実行

 $ rsnapshot -c <config_file>  -t hourly 

・実行

 $ rsnapshot -c <config_file> hourly 

運用時はこれを cron に登録しておくとよいでしょう.

・HD使用状況チェック

 $ rsnapshot -c <config_file> du