連載
» 2007年03月26日 00時00分 公開

ツールを使ってネットワーク管理(20):サーバのリモートバックアップをさせたい 〜大容量になったハードディスクにバックアップ〜 (2/3)

[山本洋介,@IT]

rdiff-backupのインストールと使い方

 rdiff-backupはミラーリングと差分バックアップが可能なバックアップツールで、リモートバックアップにも対応しています。操作も非常に簡単で、もちろんバックアップデータの復元も簡単に行うことができます。

 しかも単純なバックアップと違い、ディスク容量を効率的に使うことやネットワーク帯域を効率的に使うことが配慮されていますので、貧弱なディスクやネットワークでも安心です。

 また、特殊なデータフォーマットで保存されているわけではないので、ほかのバックアップツールを使うようになったときもデータの復元を簡単に行うことができるようになっています。

画面1 rdiff-backupのサイト 画面1 rdiff-backupのサイト

 なお、rdiff-backupはhttp://www.nongnu.org/rdiff-backup/から配布されており、3月15日現在の安定版のバージョンは1.0.5です。ライセンスはGPLです。

 FedoraなどRedhat系LinuxではRPMパッケージとして管理されていますので、yumを使ってインストールすることができます。

画面2 Fedora(上)、Ubuntu(下)のどちらでもGUIからインストールすることもできる 画面2 Fedora(上)、Ubuntu(下)のどちらでもGUIからインストールすることもできる

 同時にrdiff-backupの動作に必要となるまだインストールされていないパッケージをインストールするか聞かれますので、「y」を入力してインストールするようにします。

# yum install rdiff-backup

 GUIが使える環境であれば、もちろんパッケージマネージャからインストールすることもできます。

 また、Debian系Linuxではapt-getを使ってインストールします。

# apt-get install rdiff-backup

 パッケージ管理されていないOSではソースコードをダウンロードしてビルドする必要があります。また必要になるファイルも同様にインストールする必要がありますが、詳しくはrdiff-backupのサイトを見てください。

 無事にインストールされれば早速動かしてみましょう。

rdiff-backupをさっそく動かしてみる

バックアップ

 まず、普通にファイルをバックアップするには、以下のようにコマンドを入力します。

# rdiff-backup /home/ /mnt/backup/home

 最初のファイル名がコピーする方のファイル、次のファイル名がコピーされる方のファイル名になります。

 次にローカルにあるファイルをリモートのマシンにバックアップさせるためには以下のようなコマンドになります。なお、リモートバックアップするためには両方のマシンにrdiff-backupがインストールされている必要があります。またsshでアクセスしますのでsshが動いている必要があります。

(※UbuntuLinuxのパッケージでは1.1.5がインストールされ、これは安定版の1.0.5とは連携できないようですので注意しましょう)

# rdiff-backup /home user@example.co.jp::/remote-backup

 逆にリモートにあるサーバのファイルをローカルマシンにバックアップさせたいときには以下のようなコマンドになります。こちらについても両方のマシンにrdiff-backupがインストールされている必要があります。

# rdiff-backup user@example.co.jp::/remote-dir /local-backup

 そして、同じところにバックアップすると、差分のファイルだけが別に保存されていきますので、cronなどを使ってバックアップさせてもいいでしょう。

 これまでのバックアップ履歴を見るには--list-incrementsオプションを使います。

# rdiff-backup --list-increments backup

 また、--remove-older-thanオプションで、必要なくなった昔の差分を削除することができます。

  • 過去10回分のバックアップだけ保存
# rdiff-backup --remove-older-than 10B backup
  • 過去1カ月分のバックアップだけ保存
# rdiff-backup --remove-older-than 1M backup

バックアップからファイルをリストア

 バックアップしてもファイルが復活しなければしょうがありません。ここからはファイルを元に戻していきましょう。

 最新のバックアップからファイルを復元するのは単純にcpコマンドを使ってコピーすれば大丈夫です。以下はdirのファイルが消えてしまったときに/mnt/backupのバックアップから復元しています。

# cp -a /mnt/backup dir

 とはいえリモートのバックアップをcpを使って復元はできません。そんなときのために復元のためのオプション(-rもしくは--restore-as-of)が用意されています。

# rdiff-backup -r now user@example.co.jp::/remote-backup dir

 nowは最新のバックアップから復元するというオプションです。

 もちろん以前の状態に復元することも可能です。

  • 5日前のバックアップから復元
# rdiff-backup -r 5D user@example.co.jp::/remote-backup dir
  • 2007年3月15日のバックアップから復元
# rdiff-backup -r 2007-03-15 user@example.co.jp::/remote-backup dir

 以下のように直接差分ファイルを指定することによって復元させることも可能です。

rdiff-backupuser@example.co.jp::/remote-backup/
rdiff-backup-data/increments/user.2007-03-15T16:
47:42+09:00.dir dir(本来はすべて1行)

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。