落穂拾い

Gleanings in my life

【Gentoo】rsnapshotによるバックアップ

2011年02月22日 00時32分54秒 | Linux
これまで他のバックアップソフトウェアをいくつか使ってきたが、今回、rsnapshot に変更することにした。開発がアクティブに進められていそうなことが選択のポイントだ。
emerge -av rsnapshot
とすると、今日の時点ではバージョン1.3.1がインストールされた。 rsnapshot は、Appleのタイムマシンのように、複数タイミング(時点)のバックアップを取ることができる。それと同時に、昔のバックアップデータを消去するという作業もやってくれる。rdiff-backup と比較すると、本体のみで自動で昔のデータを消去していってくれるのがアドバンテージか。 rsnapshot で必要な情報は、「バックアップ先」、「バックアップすべきデータの在処」、「何回分のバックアップデータを保存しておくか(それ以前は自動的に削除)」ということになる。なお、「いつバックアップを取るのか?」というのは完全にユーザーに任されており、手動で好きなタイミングで rsnapshot を起動してバックアップを取ることもできる。が、普通は cron と組み合わせて使うことになるだろう。 各種情報は /etc/rsnapshot.conf で指定する。このファイルの雛形は /etc/rsnapshot.conf.default としてインストールされていたので、こいつをコピーして用いる。なお、新しい ebuild では、このサンプルファイルのインストール先が /usr/share 以下になっているようなので注意すべし。また、サンプルファイルの冒頭にも明記されているが、単語の区切はスペースではなくタブであること、ディレクトリを指定する場合は最後にスラッシュを付けねばならない。他の多くの設定ファイルとは若干流儀が異なることにも注意すべし。
cd /etc
cp rsnapshot.conf.default /etc/rsnapshot.conf
まず最初に編集するのは、バックアップに利用するコマンド群だ。ここでは、ローカルファイルとリモートファイル(ssh経由)をバックアップするつもりなので、cmd_cp と cmd_ssh をコメントアウトしておく。 続いて、「何回バックアップを取るか?」について記述する。 この記述方式は若干混乱をしやすいネーミングになっている。 指定方法は、
interval   名前   回数
といった形である。ここで指定した「名前」というのは、後にコマンドラインで rsnapshot の引数として使う文字列となる。そして、「回数」というのが、バックアップを何回分保存しておくかを表すことになる。 たとえば、
interval hogehoge 3
という指定がされていた場合、
$ rsnapshot hogehoge
として rsnapshot を実行すると、バックアップが作成され、そのバックアップは 3 回分のみ保存されることになる。もしも1分毎に一度 rsnapshot を実行すれば、バックアップデータは3分だけ残ることになる。あるいは、一月に一度 rsnapshot を実行すれば、バックアップデータは3ヶ月保存されることになる。 実際の運用では、cron により rsnapshot を定期的に起動することになるだろうから、上記の「名前」のところには、分かりやすく hourly、daily などの単語を入れるのが慣習となっているようだ。 というわけで、ここでは下記のように設定することにした。
interval	hourly	4
interval	daily	5
interval	weekly	4
interval	monthly	6
別途、cron の設定で、hourly を1日4回、daily を1日1回(ただし週末は起動しない)、weekly を週一、monthly を月一で起動することにする。そうすれば、1日4回のバックアップ(24時間しか保持しない)、1日1回のバックアップで一週間保持、週一のバックアップで一月保持、月一のバックアップで半年保持というバックアップを取ることになる。結果として、一日前までは数時間毎のバックアップ、一週間前までは日毎のバックアップ、一月前までは週毎のバックアップ、半年前までは月毎のバックアップがあることになる。 個人のホームディレクトリ等のバックアップには十分ではないだろうか。 話を元に戻して rsnapshot.conf の設定の続き。 といっても残りはバックアップ先とバックアップすべきファイルの指定のみ。 まず、バックアップ先は、
snapshot_root    /backup
などとする。これはローカルPCの /backup というディレクトリにバックアップを作成することを意味する。 続いてバックアップすべきデータの在処。例示すれば分かりやすいだろう。
backup	/home/gleaning/Mail	local/
backup	gleaning@remote:/data/hoge		remote/
一つ目はlocalhost内のデータバックアップである。localhost 内の /home/gleaning/Mail というディレクトリを local という場所に保存する。具体的には、たとえば hourly でrsnapshot を起動した場合は、/backup/hourly.0/local/home/gleaning/Mail/ 以下に入ることになる。 二つ目は、リモートホスト remote の /data/hoge というディレクトリをバックアップする設定である。具体的には、/backup/hourly.0/remote/data/hoge 以下にバックアップされる。なお、ここでは ssh でリモートからデータを取ってくるため、通常はsshのパスワード(パスフレーズ)を入力する必要がある。cron で起動したい場合は、セキュリティに心配な面もあるかとは思われるが、パスフレーズなしで ssh できるように設定しておくのが手っ取り早い。 以上の設定で、rsnapshot 自体の設定は終了だ。 あとは cron の設定のみ。これは次回ということで…

コメントを投稿