rdiff-backup

スポンサーリンク

概要

rdiff-backup は、ネットワーク対応のディレクトリバックアップツールです。
rsync のようにディレクトリの完全なコピーが保存されるとともに、差分ファイルを保存するので、いわゆる世代管理のバックアップが可能です。
また、rsync 同様、ssh を使ってリモートシステムにアクセス可能なので、セキュアにネットワーク越しのバックアップを行うことが可能です。
さらに、多機能ですが、シンプルな使い方はとても簡単であるところもポイントが高いです。

インストール

わりと新しめの OS であればパッケージとして用意されているようです。

CentOSの場合

例えば、CentOS-7.x であれば yum でインストール可能ですが、EPELリポジトリを参照できる必要があるので、事前に使えるようにしておきます。
使えるようになっていれば下記でOKです。

# yum install rdiff-backup

yum ではインストールできない場合は、ソースからビルドする必要があります。
以下、rdiff-backup-1.2.8 の例です。
まず、公式サイトより、アーカイブを取得し、展開します。

 % gzip -dc rdiff-backup-1.2.8.tar.gz | tar xvf -
 % cd rdiff-backup-1.2.8

rdiff-backup は Python で出来ており、以下のように Python スクリプトを実行することでインストール可能です。
以下の例では、/usr/local 以下にインストールするように指定しています。
※root 権限が必要であれば、root で実行

 % python setup.py install --prefix=/usr/local

なお、python.h が見つからない、、、という場合には、python-devel パッケージをインストールします。
librsync.h がない場合には、librsync を別途インストールする必要があります。

Macの場合

Homebrew でインストールできます。

% brew install rdiff-backup

バックアップ方法

いろいろ機能があるようですが、単純に指定したディレクトリのバックアップを取得する場合には、以下のように指定するだけでOKです。
以下の例では、/project を /backup/project にバックアップを取得します。

 % rdiff-backup /project /backup/project

なお、以下のエラーが出る場合には、PYTHONPATH を設定する必要があります。

 ImportError: No module named rdiff_backup.Main

また、–exclude xxxx を指定することで、バックアップの対象から外すファイルを指定することも可能です。

ssh を利用

rdiff-backup は、ssh を使用してリモートからローカル、ローカルからリモート、リモートからリモートへバックアップを行うことが可能です。
以下は、一番使用しそうな、リモートからローカルへバックアップする例です。

 % rdiff-backup \
    --remote-schema 'ssh -i /path/to/backup_dsa -C %s rdiff-backup --server' \
    remote_xxx::/project /backup/project

なお、ssh を利用してリモートでもバックアップを行うことが可能ですが、リモート側のサーバにも rdiff-backup がインストールされている必要があります。
また、リモートとローカルで rdiff-backup のバージョンが異なると動作しないこともあるようです。

その他

クライアントとサーバで rdiff-backup のバージョンが異なっていると動作しないことがあります。
私の経験では、下記の状態の時はバージョン不一致でエラーが発生しました。

クライアント:MacOS rdiff-backup 2.0.5
サーバ:CentOS rdiff-backup 1.2.8

コメント

タイトルとURLをコピーしました