amanda
、bacula
、BackupPC
等の多くのプログラムが存在します。これらはクライアント/サーバシステムに適した多くの選択肢で、設定はかなり難しいです。幾つかは難しさを和らげるためのユーザフレンドリーなウェブインターフェイスを提供しています。しかし Debian には、全ての考え得る使用事例に対応できる、他の数多くのバックアップソフトウェアが含まれています。ソフトウェアを確認するには apt-cache search backup
を使ってください。
rsync
コマンド (同名のパッケージに含まれる) を使って、異なるサーバにバックアップを行います。
rsync
コマンドはバックアップの内容をハードリンクで複製します。このお陰で、ハードドライブ領域を無駄に消費する事がなくなります。そして rsync
プロセスは最後のバックアップ以降に変更されたファイルだけを置き換えます。このメカニズムにより、多くのバックアップを少ない領域に保存することが可能です。全てのバックアップは素早く利用可能でアクセス可能 (例えば、ネットワーク共有されたディレクトリの中) なので、ある日付同士の違いを素早く比較できます。
dirvish
プログラムを使えば、このバックアップメカニズムを簡単に実現できます。dirvish
プログラムはバックアップストレージ領域 (dirvish 用語で「bank」) を使い、「bank」の中に一連のバックアップファイルのタイムスタンプを付けたコピー (dirvish の文書ではこれらを「vaults」と呼びます) を置きます。
/etc/dirvish/master.conf
ファイルに含まれます。/etc/dirvish/master.conf
ファイルでは、バックアップストレージスペースの場所、管理する「vaults」のリスト、バックアップの保存期限のデフォルト値を定義します。残りの設定は bank/vault/dirvish/default.conf
ファイルの中に書き、このファイルには対応するファイルセットに対する特定の設定が含まれます。
例9.3 /etc/dirvish/master.conf
ファイル
bank: /backup exclude: lost+found/ core *~ Runall: root 22:00 expire-default: +15 days expire-rule: # MIN HR DOM MON DOW STRFTIME_FMT * * * * 1 +3 months * * 1-7 * 1 +1 year * * 1-7 1,4,7,10 1
bank
設定はバックアップが保存されるディレクトリを表します。exclude
設定を使うと、バックアップからファイル (またはファイルタイプ) を除外することが可能です。Runall
はタイムスタンプを付けてバックアップするファイルセットのリストです。これにより、万が一割り当てられた時間に正確にバックアップが実行されない場合、コピーする正確な時刻を割り当てることが可能です。ここで指定する時刻は実際の実行時間の直前の時刻でなければいけません (/etc/cron.d/dirvish
によれば、Debian では実際の実行時間はデフォルトで午後 10:04です)。最後に expire-default
と expire-rule
設定でバックアップ保存期限ポリシーを定義します。上の例は、各四半期の最初の日曜日に作成されたバックアップを永久に保存し、それに当てはまらない各月の最初の日曜日作成されたバックアップを 1 年経過後に削除し、それに当てはまらない日曜日に作成されたバックアップを 3 ヶ月経過後に削除します。その他の日次バックアップは 15 日間保存されます。ルールが適用される順番が問題です。Dirvish は最後にマッチしたルールを使い、expire-rule
にマッチするものがなければ expire-default
を使います。
例9.4 /backup/root/dirvish/default.conf
ファイル
client: rivendell.falcot.com tree: / xdev: 1 index: gzip image-default: %Y%m%d exclude: /var/cache/apt/archives/*.deb /var/cache/man/** /tmp/** /var/tmp/** *.bak
hostname
の出力するローカルマシンの名前を指定します) にあり、特にルートツリーの内容 (tree: /
) から、exclude
に含まれるものを除外したファイルです。さらに、バックアップは tree
と同一のファイルシステムの内容に制限されます (xdev: 1
)。他のマウントポイントのファイルはバックアップされません。保存されたファイルのインデックスが生成され (index: gzip
)、イメージには現在の日付に関連する名前が付けられます (image-default: %Y%m%d
)。
dirvish --vault vault --init
コマンドを使って、各ファイルセットを初期化します。毎日の dirvish-runall
実行時に、期限切れになったバックアップコピーが削除され、その直後に自動的に新しいバックアップコピーが作成されます。