概要
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
コメント