pdumpfs-rsync とは
pdumpfs-rsync は,高林さんが作られた pdumpfs と rsync を組み合わせて リモートでディレクトリの差分コピーを行うツールです.pdumpfs 単体ではできない pull 型のコピーが可能になっています.
pdumpfs-rsync は,まず rsync を利用してリモートホストからディレクトリツリーを 取得します.そのあとで,日付のディレクトリに対してハードリンクを張って いきます.変更の有無はすべて rsync の処理に依存します.
メリット
- pdumpfs の特徴をすべて継承しています.
- ハードリンクを利用しているため,変更があったファイル分(とディレクトリ) のみディスク容量を使います.
- ディレクトリツリーをそのままの形でバックアップできます.
- バックアップからの復旧に特殊なツールは不要です.cp などで簡単に戻せます.
- rsync を利用しているため,効率よくファイルのコピーができます.
- ネットワーク越し(pull 型,バックアップホストで pdumpfs-rsync を起動)に
バックアップがとれます.
- 対象サイトに必要なのは rsync だけです.
デメリット
- push 型(ターゲットホストで pdumpfs-rsync を起動)のネットワークバックアップ はできません.
- mv したファイルの場合は,内容が変わっていなくても新たにコピーしてしまいます. 大きなディレクトリやファイルを mv した場合,ディスクが一気に足りなくなる ことがあります.
pdumpfs-rsync の使い方
pdumpfs-rsync を利用するには,pdumpfs と rsync が必要です. まずはこれらをインストールしてください.
pdumpfs-rsync の一行目の Ruby のパスを必要に 応じて変更します.デフォルトのままであれば,コマンドラインで以下のように 入力します.当該ユーザで対象ホストに ssh でログインできるようにしておいて ください.また,対象ホストで rsync を実行できるようにしておいてください.
% pdumpfs-rsync <ユーザ名>@<ホスト名>:<対象ディレクトリ> <コピー先ディレクトリ>
ユーザ名は省略することができます.実行すると,コピー先ディレクトリに latest というディレクトリができます.まず rsync でここにコピーし,あとは pdumpfs と同じようにここから各年月日のディレクトリにコピー(ハードリンク)されて いきます.
また,--exclude --exclude-from --include --include-from の 4 つのオプション 利用することができます.これらのオプションは rsync に直接渡され,コピーする ファイルやディレクトリを細かく指定することができます.詳しくは rsync の manpage を見てください.
毎日実行することにより,スナップショットを保存していくことができます. たまりすぎたときは,拙作 pdumpfs-clean を利用して適宜削除していってください.
ダウンロード
GNU General Public License に従い,フリーソフトウエアとして配布します.
- pdumpfs-rsync
- pdumpfs-rsync-0.6(pdumpfs 0.6 向け)
- CVS リポジトリ
変更履歴
2004.05.02 (version 0.8.1):
rsync が失敗してもハードリンクを張るためのオプション 「--force-hardlink」を作成しました.
2004.04.22 (version 0.8):
pdumpfs 0.8 への対応. pdumpfs 0.6 では使えません.
2003.07.17:
二回目以降のコピーで更新されたモノはハードリンクじゃなくてコピー するようになってしまっていたため,その分だけ無駄に容量がいる バグを修正.