next up previous contents
Nächste Seite: Definition von Regeln Aufwärts: Grundlegende Konzepte Vorherige Seite: Auswahl von Verzeichnissen /   Inhalt


Löschen von alten Backups

Der eher konventionelle Ansatz

StoreBackup gibt Dir viele Möglichkeiten zum Löschen (oder Behalten) der alten Backups. Falls Du ein Backup hast, was nie gelöscht werden sollte, ist die einfachste Art, das zu erreichen, es durch Anhängen eines Minus-Zeichens - gefolgt von Text - umzubenennen. Zum Beispiel:

$ mv 2003.07.28_06.12.41 2003.07.28_06.12.41-archive

Umbenannte Backup müssen genau diesem Muster entsprechen: yyyy.mm.dd_dd.mm.ss-(.+)

Wichtig: Falls Du die Option lateLinks von storeBackup.pl verwendest, darfst Du erst umbenennen, nachdem storeBackupUpdateBackup.pl erfolgreich gelaufen ist!
Umbenannte Backups werden von neuen Backups nicht mehr referenziert (via Hardlinks), also in der Regel erst umbenennen, wenn das Backup nicht mehr das Neueste ist!

Archivieren durch ein einfaches Umbenennen ist möglich, weil storeBackup.pl und storeBackupDel.pl nur Verzeichnisse (Backups) löschen, die exakt dem Muster YYYY.MM.DD_hh.mm.ss entsprechen.

Die einfachste Art, ein Backup zu löschen, ist mittels rm -rf. Mach das nicht, wenn Du die Option lateLinks verwendest! Wenn Du zu alte Sicherungen abhängig von Regeln löschen willst, hast Du mehrere Möglichkeiten. Du kannst die Aufbewahrungszeit auf Basis von bestimmten Wochentagen (mit einem zugrunde liegendem Standardwert für alle Tage) bestimmen; du kannst die Aufbewahrungszeit mit den Optionen keepFirstOfYear, keepLastOfYear, keepFirstOfMonth und keepLastOfMonth festlegen. Oder Du kannst mit keepFirstOfWeek oder keepLastOfWeek definieren, wie lange Sicherungen aufbewahrt bleiben sollen. In all diesen Fällen musst Du den Zeitraum für die Aufbewahrung angeben. Wie das geht, ist bei den Beschreibungen der jeweiligen Optionen von storeBackup.pl erklärt.

Nun stell Dir vor, dass Du Deine Sicherungen unregelmäßig durchführst, vielleicht von einem Laptop auf einen Server; oder Du machst Deine Sicherungen, wenn Du meinst, einen wichtigen Arbeitsschritt fertiggestellt zu haben. In diesen Fällen ist es nützlich zu sagen: „Behalte das letzte Backup eines Tages länger`` (mit keepDuplicate). Wenn Du für einen Monat in Urlaub warst, und keepAll auf 30d gesetzt war, dann wirst Du wahrscheinlich nicht wollen, dass storeBackup.pl alle Deine alten Backups löscht, wenn Du es das erste Mal startest, nachdem Du zurück bist. Vermeiden kannst Du dies mittels der Option keepMinNumber. Andererseits, wenn Du nur begrenzten Platz für Deine Sicherungen hast, möchtest Du vielleicht die Anzahl der Sicherungen generell begrenzen - dies geht mit keepMaxNumber.

Mit keepDuplicate gibst Du einen Zeitraum an, in dem storeBackup doppelte Backups eines Tages aufbewahrt. Nach diesem Zeitraum wird nur das letzte Backup eines Tages erhalten.

Mit keepMinNumber gibst Du die minimale Anzahl von Backups an, die erhalten wird. Die Logik hierfür ist wie folgt:

Mit keepMaxNumber bestimmst Du die maximale Anzahl von Backups. Falls notwendig, wird storeBackup demzufolge das älteste Backup löschen. Um besondere Backups vom Löschen auszunehmen, kann ein „Archiv Flag`` bei den keep$*$ Optionen verwendet werden. Backups, auf die dieses zutrifft, werden durch keepMaxNumber niemals gelöscht. So ist es möglich, dass mehr Backups übrigbleiben als mit keepMaxNumber vorgesehen - aber das „Archiv`` Flag ist nützlich, um besondere Backups wie „letztes Backup eines Monats`` oder „letztes Backup eines Jahres`` vor dem Löschen zu schützen.

Verwendung von keepRelative als Lösch-Strategie

Diese Option aktiviert eine alternative Lösch-Strategie, die es Dir erlaubt, das relative Alter von Backups anstelle einer Aufbewahrungsperiode zu definieren.

Stell Dir vor, Du hättest immer die folgenden Backup verfügbar:

Beachte, dass das sehr wahrscheinlich nicht das ist, was Du willst, und zwar weil es ganz einfach bedeutet, dass Du tägliche Backups durchführen musst und jedes Backup für exakt 3 Monate behalten musst. Ansonsten könntest Du kein Backup vorhalten, dass das geforderte exakte Alter hat.
Was Du wirklich willst, ist daher so etwas wie: Das wäre eine sehr gewöhnliche Backup-Strategie, aber Du würdest Schwierigkeiten haben, dieses mit den anderen keepFirstOf$*$ Optionen zu definieren, insbesondere, wenn Du die Backups nicht regelmäßig durchführst. Allerdings kannst Du dieses Verhalten sehr einfach mit keepRelative durchführen. Du musst nur Folgendes angeben:
keepRelative = 1h 1d 7d 14d 31d 80d 100d
Das heißt, Du listet hier alle Intervalle auf, für die Du Backups haben willst. StoreBackup wird die Backups in einer Art und Weise löschen, die dem gewünschten so nahe wie möglich kommt. (Wenn Du nicht genügend Backups machst, kann aber auch storeBackup nichts dagegen unternehmen.)
Beachte, dass dieses bedeuten kann, dass storeBackup mehr Backups erhalten muss als Du denkst; z.B. könnte es zwei Backups in einer Periode behalten. In diesen Fällen „sieht storeBackup in die Zukunft`` und stellt fest, dass beide Backups später nötig sind, um Backups für alle Perioden vorzuhalten. Dies ist auch der Grund, warum im obigen Beispiel implizit die Periode 7-14 Tage spezifiziert wird, auch wenn Du in ihr kein Backup haben willst. Um Backups in der nächsten Periode (14-31 Tage) zu haben, benötigst Du immer auch ein Backup in der Periode 7-14 Tage. Aus diesem Grund erlaubt es die Syntax nicht, Perioden auszuschließen.
Schlussendlich solltest Du darauf achten, dass storeBackup alle Intervalle, für es kein passendes Backup finden kann, verschiebt: Wenn Dein erstes Backup zwischen 10 und 20 Tage sein soll, aber das nächste aktuelle 25 Tage alt ist, werden alle folgenden Perioden um 5 Tage verlängert. Wenn Du über einen längeren Zeitraum keine Backups gemacht hast, stellt dieses Verhalten sicher, dass dieser Zeitraum Dein Backup-Schema nicht durcheinanderbringt. Hier ein Beispiel, warum dieses sinnvoll ist: Wenn du Backups haben willst, die 1, 3, 7 und 10 Tage alt sind und Du gehst für 14 Tage in Urlaub, dann ist es sehr unwahrscheinlich, dass Du alle Backups gelöscht haben willst, wenn Du zurückkommst. Daher ignoriert storeBackup diese 14 Tage und behält die Backups entsprechend länger.


next up previous contents
Nächste Seite: Definition von Regeln Aufwärts: Grundlegende Konzepte Vorherige Seite: Auswahl von Verzeichnissen /   Inhalt
Heinz-Josef Claes 2014-04-20