Wie kann ich automatisch alte Timeshift-Sicherungen löschen?
- Einleitung
- Automatische Löschung über Timeshift-Konfiguration
- Automatisches Löschen mit einem benutzerdefinierten Skript
- Wichtige Hinweise
- Zusammenfassung
Einleitung
Timeshift ist ein beliebtes Tool zur Sicherung von Linux-Systemen, das Schnappschüsse (Snapshots) erstellt,
um Systemzustände schnell wiederherstellen zu können. Im Laufe der Zeit können sich viele Sicherungen ansammeln
und viel Speicherplatz beanspruchen. Um dies zu verhindern, empfiehlt es sich, alte Timeshift-Sicherungen
automatisch zu löschen. Im Folgenden wird erläutert, wie dies mit Hilfe der eingebauten Timeshift-Funktionalitäten
Automatische Löschung über Timeshift-Konfiguration
Timeshift hat in der Regel eine integrierte Funktion zur Verwaltung der Schnappschüsse, die auch die automatische
Löschung alter Sicherungen unterstützt. Beim Erstellen und Planen von Schnappschüssen (z. B. täglich, wöchentlich,
monatlich) können Grenzen für die Anzahl der zu behaltenden Sicherungen definiert werden. Dies erfolgt meist in der
In der Konfigurationsdatei von Timeshift, die sich meistens unter /etc/timeshift.json befindet,
{ "schedule": { "monthly": { "enabled": true, "count": 3 }, "weekly": { "enabled": true, "count": 5 }, "daily": { "enabled": true, "count": 7 } }}Hier wird eingestellt, dass nur die letzten 3 monatlichen, 5 wöchentlichen und 7 täglichen Schnappschüsse behalten werden. Ältere werden automatisch gelöscht. Dies ist die empfohlene Methode, da sie von Timeshift selbst verwaltet wird und keine zusätzlichen Skripte notwendig sind.
Automatisches Löschen mit einem benutzerdefinierten Skript
Sollte das automatische Löschen über die eingebaute Funktion nicht ausreichen oder individuelle Anforderungen bestehen, kann ein Bash-Skript verwendet werden, um alte Sicherungen zu löschen. Timeshift speichert die Snapshots standardmäßig im Ordner /timeshift/snapshots/. Die Ordnernamen enthalten meist das Datum des Snapshots, was das Sortieren und Löschen erleichtert.
Beispielsweise kann ein Skript alte Sicherungen finden und löschen, die älter als eine bestimmte Anzahl Tage sind. Ein einfaches Beispiel für ein solches Skript könnte so aussehen:
#!/bin/bash# Verzeichnis mit Timeshift-SnapshotsSNAPSHOT_DIR="/timeshift/snapshots"# Anzahl der Tage, nach denen Snapshots gelöscht werden sollenDAYS_TO_KEEP=30# Lösche Snapshots, die älter als $DAYS_TO_KEEP Tage sindfind "$SNAPSHOT_DIR" -maxdepth 1 -mindepth 1 -type d -mtime +$DAYS_TO_KEEP -exec rm -rf {} \;Das Skript nutzt den Befehl find um Verzeichnisse zu finden, die älter als die angegebene Anzahl von Tagen sind, und löscht diese rekursiv mit rm -rf. Dieses Skript sollte mit Bedacht eingesetzt und vorher überprüft werden (z. B. mit echo vor dem rm), um unbeabsichtigtes Löschen zu vermeiden.
Um dieses Skript regelmäßig auszuführen, kann ein Cronjob eingerichtet werden. Dafür bearbeitet man die Crontab mit crontab -e und fügt eine Zeile hinzu, die z.B. täglich um 3 Uhr nachts das Skript ausführt:
0 3 * * * /pfad/zu/deinem/cleanup_timeshift.shDamit wird die automatische Löschung alter Timeshift-Sicherungen zuverlässig und planbar umgesetzt.
Wichtige Hinweise
Vor der Einrichtung automatischer Löschvorgänge sollte sichergestellt werden, dass aktuelle und wichtige Snapshots nicht irrtümlich entfernt werden. Es empfiehlt sich, vor dem Einsatz von automatischen Skripten ein Backup wichtiger Daten anzufertigen und die Funktionsweise der Skripte ausführlich zu testen. Die native Timeshift-Managementfunktion ist in der Regel sicherer und genügt den meisten Anwendungsfällen.
Zusammenfassung
Timeshift bietet eine integrierte Möglichkeit, alte Sicherungen automatisch zu löschen, indem man in der Konfiguration die Anzahl zu behaltender Snapshots definiert. Alternativ können individuelle Skripte, z.B. via find und Cronjobs, für eine gezielte Aufbewahrungspolitik verwendet werden. Dabei ist stets Vorsicht geboten, um Datenverlust zu vermeiden.
