Be Silent! 〜 ミニサーバ日記 〜 37. 変更あるときのみ .tgz 作るスクリプトを作った


 第27話で作った、 設定ファイルその他を自動的にバックアップするシカケ。 しかし実際に運用してみると、ちょっといまいちな部分がある。

 例えば、週イチで、5世代バックアップを取るようにしていた場合で、 しかもその、バックアップを取る対象が、 めったに変更しないようなファイル群だった場合。 例えば5週間、なんにも変更がなかったとすると、 全く同じ.tgzが5つ並ぶことになる。これは無駄だ。

 そこで、前回のバックアップと、現在の内容を比較し、 更新があった場合のみ、新しくバックアップを作るようにしてみた。

 例によって、そういう動きをするスクリプトを作るのだが。(^_^;

 tarにそういうオプションがあればよかったのだけれど、 ちょっとそういうのはないみたい。 近いのはあったのだが、ファイルの更新に対してはうまく動いても、 追加されたファイルをアーカイブに追加してくれないようだった。

 結局スマートな方法は思いつかず、一旦アーカイブをテンポラリに展開して、 それとバックアップ元を比較して、相違があったらバックアップを実行する、 という処理にした。この比較にrsyncを使ってるあたりがなんとも不細工。 誰かいい方法あったら教えてください。

 n世代を保持するバックアップは、その周期が短いと、 巻き戻せる期間も短くなってしまうという欠点がある。 普通は、保持する世代数を増やすとか、 爺さん・父さん・子供の3世代バックアップなどを行うのだが、 今回はこんな方法をとってみた。 しばらく運用してみて評価しよう。


トップ もどる