落穂拾い

Gleanings in my life

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

2011年02月28日 00時36分10秒 | small talk

rsnapshot によるバックアップ設定で、とても重要で分かりにくいのは interval の設定である。 前回のブログで、

interval	hourly	4
interval	daily	5
interval	weekly	4
interval	monthly	6

という設定を書いた。実際にバックアップを取るには、cron で rsnapshot を呼び出し、そのタイミングでバックアップを取るため、hourly とか daily という単語自体には意味はなく、cron が起動される頻度(タイミング)こそがバックアップを取るタイミングである。 しかし、ただ、それだけでも理解できないのが rsnapshot の難しいところ(と思うのは私だけか)。 というのも、上記のような設定の場合、実際にバックアップを作成するのは hourly だけである。すなわち、rsnapshot の設定ファイル内で、最初に指定された interval のみが実際のバックアップを取るタイミングであるということである。 では、二つ目以降の interval が何を意味しているのか?というと、これはコピーを取るタイミングである。たとえば、上記の設定では、daily のバックアップ内容というのは、hourly の一番古いバックアップをコピーしたものになる。そしてweeklyのバックアップとは、daily の一番古いバックアップをコピーしたものになる。 したがって、rsnapshot daily などとして実行しても、実行したそのときのバックアップが取られるわけではなく、4回前に rsnapshot hourly を実行したときのバックアップがコピーされることになる。 実例で説明してみよう。今回は下記のような設定を cron に施した。

0       0,12,16,20      *       *       1-5     rsnapshot hourly
0       4               *       *       2-6     rsnapshot daily
0       5               *       *       0       rsnapshot weekly
0       6               1       *       *       rsnapshot monthly

まず、hourly で月曜日から金曜日(1-5)の0時、12時、16時、20時にバックアップを取る。すなわち、勤務時間中に4時間おきにバックアップを取るという方針。この hourly については実際にこのタイミングでバックアップが取られることになる。 続いて daily について見てみる。これは、毎週火曜から土曜までの午前4時にバックアップを取ることになる。しかし、実際に午前4時のバックアップが取られるわけではなく、そのタイミングで一番古い hourly のバックアップのコピーが取られることになる。すなわち、前日の12時のバックアップがコピーされることになる。 weekly については、毎週日曜日の午前5時にバックアップを取ることになるが、これもこのタイミングでバックアップを作成するわけではなく、その時点で一番古い daily のバックアップ、すなわち、前の月曜日の12時のバックアップがコピーされることになる。 最後に monthly であるが、これは毎月1日の午前6時にバックアップを取ることになるが、これもこんタイミングでバックアップを作成するわけではなく、一番古い weekly のバックアップ、すなわち、4週間前の月曜日の12時のバックアップがコピーされることになる。 というわけで、最後の monthly に至っては、約一月前のバックアップがコピーされるようにいなる点に注意が必要である。


コメントを投稿