Lösungen zum automatischen Beschneiden von Backups?

Lösungen zum automatischen Beschneiden von Backups?

Wir stehen vor einem, da bin ich mir sicher, äußerst verbreiteten Problem: Wir führen täglich Backups durch, aus denen komprimierte Archivdateien entstehen, deren Dateinamen das Datum enthalten, und wir möchten diese nicht alle für immer behalten.

Einige Anforderungen, die ich nicht für zu abwegig halte:

  • alle Backups/Tage außer den letzten X löschen
  • Behalte die Sonntags-Backups
  • Bewahren Sie das letzte Backup jedes Monats auf
  • Benachrichtigen Sie jemanden, wenn das neueste Backup die Größe 0 hat/mehr als 50 % größer/kleiner als das letzte ist

Ich habe versucht zu googeln, aber nur tausend Skripte gefunden, viele davon mit eklatanten Problemen und Fehlern. Gibt es keine „richtigen“ Lösungen für dieses Problem, die gut getestet sind und eine Community haben? Bin ich dazu verdammt, ein Skript von SO oder SU zu kopieren und einzufügen, das weder gewartet noch Bugfixes erhält und eines Tages wahrscheinlich alle unsere Backups verschlingen wird?

Antwort1

GFS (Großvater-Vater-Sohn) Aufbewahrungsmethode ist hier wahrscheinlich eine gute Antwort. Kombinieren Sie dies mit einigen gut getimten Crons, wie sie @ivanivan erwähnt.

Grundsätzlich erstellen Sie täglich, wöchentlich und monatlich Backups (die Crons steuern, welche dies sind).

Anschließend können Sie Aufbewahrungsrichtlinien festlegen

  • Tägliche Backups werden normalerweise mindestens 1 Woche lang aufbewahrt (manchmal aber auch 2 bis 3 Wochen).
  • Wöchentliche Backups werden normalerweise 5 Wochen lang aufbewahrt (aber möglicherweise 8 Wochen).
  • Monatliche Backups werden normalerweise 6 oder 12 Monate lang aufbewahrt (abhängig vom jährlichen/halbjährlichen Backup).
  • Jährliche/halbjährliche Backups könnten ebenfalls durchgeführt werden, sind aber möglicherweise nur für die Buchhaltung nützlich oder wenn Sie Protokolle aufbewahren müssen

Die Crons würden dann auch die alten Archive löschen, die außerhalb des Richtlinienfensters liegen

Wie ivanivan vorschlägt:

Ihr Problem klingt, als ob ein relativ einfacher Satz von Shell-Skripten und Cron-Jobs es lösen würde. Ich würde vorschlagen, dass Sie, anstatt nach einem Skript zu googeln, das für die Situation einer anderen Person funktioniert, googeln, wie man Shell-Skripte lernt.

vielleicht möchten Sie sich Bash-Skripting ansehen – es ist eine tolle Sache, die man lernen kann :)

verwandte Informationen