サーバのリモートバックアップをさせたい 〜大容量になったハードディスクにバックアップ〜:ツールを使ってネットワーク管理(20)(2/3 ページ)
大したものが入っていないと思っていても、サーバの内容はバックアップを取っておくに越したことはありません。rdiff-backupを使って安価で大容量になったハードディスクにバックアップに挑戦してみましょう
rdiff-backupのインストールと使い方
rdiff-backupはミラーリングと差分バックアップが可能なバックアップツールで、リモートバックアップにも対応しています。操作も非常に簡単で、もちろんバックアップデータの復元も簡単に行うことができます。
しかも単純なバックアップと違い、ディスク容量を効率的に使うことやネットワーク帯域を効率的に使うことが配慮されていますので、貧弱なディスクやネットワークでも安心です。
また、特殊なデータフォーマットで保存されているわけではないので、ほかのバックアップツールを使うようになったときもデータの復元を簡単に行うことができるようになっています。
なお、rdiff-backupはhttp://www.nongnu.org/rdiff-backup/から配布されており、3月15日現在の安定版のバージョンは1.0.5です。ライセンスはGPLです。
FedoraなどRedhat系LinuxではRPMパッケージとして管理されていますので、yumを使ってインストールすることができます。
同時に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.