自動バックアッププルーニングソリューション?

自動バックアッププルーニングソリューション?

私たちは、非常によくある問題に直面しています。毎日バックアップを実行すると、ファイル名に日付が含まれる圧縮されたアーカイブ ファイルが生成されますが、そのすべてを永久に保存しておくつもりはありません。

あまり突飛ではないと思う要件をいくつか挙げます。

  • 最後のX日間のバックアップを除くすべてのバックアップを削除します
  • 日曜日のバックアップを維持する
  • 毎月の最後のバックアップを保存する
  • 最新のバックアップのサイズが 0 の場合、または前回のバックアップより 50% 以上大きい/小さい場合に警告する

Google で検索してみましたが、見つかったスクリプトは 1,000 件だけで、その多くには明らかな問題やバグがあります。この問題に対して、十分にテストされ、コミュニティがある「適切な」解決策はないのでしょうか。メンテナンスもバグ修正もされず、いつかバックアップがすべて消えてしまうような SO または SU からスクリプトをコピーして貼り付けるしかないのでしょうか。

答え1

GFS(祖父-父-息子) 保持方法は、おそらくここでの良い答えでしょう。これに、@ivanivan が言及しているようなタイミングの良い cron を組み合わせます。

基本的に、毎日、毎週、毎月バックアップを取ります (どのバックアップを取るかは cron によって制御されます)。

次に保持ポリシーを決定します

  • 毎日のバックアップは通常、最低1週間(場合によっては2~3週間)保存されます。
  • 週次バックアップは通常5週間(ただし8週間まで)保存されます。
  • 月次バックアップは通常 6 か月または 12 か月保存されます (年次/半年ごとのバックアップによって異なります)
  • 年次/半年ごとのバックアップも作成できますが、会計やログの保存が必要な場合にしか役に立ちません。

その後、Cronはポリシーウィンドウ外にある古いアーカイブもクリアします。

ivanivan が示唆しているように:

あなたの問題は、比較的単純なシェル スクリプトと cron ジョブのセットで解決できそうです。他の人の状況で機能するスクリプトを Google で検索するのではなく、シェル スクリプトの実行方法を学ぶ方法を Google で検索することをお勧めします。

bash スクリプトを調べてみるといいかもしれません。学ぶ価値のある素晴らしいものです :)

関連情報