[Python] pdumpfsっぽいバックアップツールpydumpfs 0.1公開

pydumpfsとは、なんですか?

pydumpfsは、バックアップツールです。以下のような特徴を持っています。

  • バックアップディレクトリの下に、「年/月/日/時分秒.ミリ秒」のディレクトリを作成します。これにより、バックアップした時点でのスナップショットを保存することができます。
  • 前回のバックアップから変更がないファイルは、前回のバックアップファイルへのハードリンクを作成します。これにより、ハードディスクの容量を節約します。
  • ファイルの最終更新時刻だけでなく、所有者やパーミッションが変更された場合も、更新されたとみなしてファイルをコピーします。
  • 絶対パスを保存します。カレントディレクトリが/homeのとき、fooディレクトリをバックアップすると、バックアップディレクトリの下には「年/月/日/時分秒.ミリ秒/home/foo」ディレクトリを作成します。このとき、親ディレクトリ(この例でいうと/home)のパーミッションや所有者も変更します。
  • root権限が必要です。上述の通り、pydumpfsは絶対パスを保存し、親ディレクトリのパーミッションや所有者を変更します。通常はルートディレクトリ直下のディレクトリの所有者はrootでしょうから、バックアップにもroot権限が必要になります。

動作環境

以下の環境で動作を確認しています。

種別 バージョン
Ubuntu Linux 6.10
Python 2.4.4c1

ダウンロード

以下のリンクからダウンロードできます。

インストール

ダウンロードしたファイルを展開して、以下のように実行します。

$ sudo python setup.py install

使い方

以下のようにして使用します。

$ sudo pydumpfs <バックアップ先のディレクトリ> <バックアップ元のディレクトリ>...

「バックアップ元のディレクトリ」には、複数指定することができます。

類似の他のツール

名称 URL 特徴
pdumpfs http://0xcc.net/pdumpfs/ Rubyで書かれている。バックアップは一日一回。
pdumpfs-serial http://www.keshi.org/wiliki/wiliki.cgi?pdumpfs-serial 一日複数回バックアップできるpdumpfs.
glastree http://www.igmus.org/code/ Perlで書かれている。
mdumpfs http://www.misuzilla.org/dist/net/mdumpfs/ C#で書かれている。.NET用。
dmirror http://t-code.org/blog/2007/06/dmirror_pdumpfs_1.html ファイルが移動していても、ハードリンクできる。
rdiff-backup http://www.nongnu.org/rdiff-backup/ ネットワーク越しにバックアップできる。
rsnapshot http://www.rsnapshot.org/ Perlで書かれている。ネットワーク越しにバックアップできる。
unison http://www.cis.upenn.edu/~bcpierce/unison/ UnixとWindows間でファイルを同期する。