Snapper für Btrfs Snapshots
Wer ein Tool zum Verwalten und Automatisieren von Snapshots sucht, wird mit snapper fündig. Es ist ein Kommandozeilen Tool um Snapshots anzulegen, verändern, löschen und Automatisch erstellen zu lassen.
Was wird benötigt
Es müssen Subvolumes angelegt sein, denn snapper erstellt nur auf ein vorhandenes Subvolume eine Configurations Datei. Es ist zwar möglich im root Subvolume /
eine Automatisation einzurichten, aber man muss beachten das genügend Platz auf der Platte vorhanden ist, da z.B. nach einem Systemupdate neue Dateien auf die Festplatte gespeichert werden.
Configuration
snapper create-config
Die Syntax mit root rechte:
snapper -c <name> create-config </Pfad/zu/Subvolume>
-c <name>
ist ein Argument, um ein Namen für eine Konfigurations-Datei zuzuweisen. Die Datei befindet sich später in /etc/snapper/configs/
. Es wird ein Cronjob angelegt unter /etc/cron.hourly/
.
Um z.B. das Root /
Verzeichniss eine Konfiguration zu erstellen:
snapper -c Root create-config /
Info: es werden automatisch Snapshot Subvolumes mit readonly
Zugriffsrechten unter /.snapshots
innerhalb des Subvolumes erstellt.
Config Datei
Unter /etc/snapper/configs/
befinden sich die Konfigurations-Dateien.
Zum Beispiel mit:
nano /etc/snapper/configs/Root
editiert man die zuvor erstellte Konfigurationsdatei.
TIMELINE_LIMIT_HOURLY="10"
TIMELINE_LIMIT_DAILY="10"
TIMELINE_LIMIT_WEEKLY="0"
TIMELINE_LIMIT_MONTHLY="10"
TIMELINE_LIMIT_YEARLY="10"
Dies ist die Voreinstellung um 10 stündliche, 10 tägliche, 10 monatliche und 10 jähliche Snapshots zu behalten.
Achtung: Es kann ein Vielfaches an Speicherplatz belegt werden wenn das komplette System archiviert wird.
Um das Automatische erstellen von Snapshots zu deaktivieren:
TIMELINE_CREATE="no"
muss diese Zeile von yes
auf no
gestellt werden.
Systemd timer Service
Wenn statt Cron Systemd verwendet wird, müssen für Snapper drei Systemd Timer aktiviert und gestartet werden:
systemctl enable snapper-timeline.timer
systemctl start snapper-timeline.timer
systemctl enable snapper-cleanup.timer
systemctl start snapper-cleanup.timer
Snapper Boot
Um automatisch bei jedem Reboot einen Snapshot erstellen zu lassen, aktiviert man:
systemctl enable snapper-boot.timer
systemctl start snapper-boot.timer
snapper commands
Selber Snapshot erstellen
Syntax:
snapper -c <name> create --description "beschreibung mit worten"
Beispielsweise kann man mit:
snapper -c Root create --description manuel
ein Snapshot von der ‘Root’ Config mit der beschreibung ‘manuel’ erstellen.
Liste von Snapshots anzeigen
Syntax:
snapper -c <name> list
Löschen von Snapshots
snapper -c <name> delete <nummer>
Zum Beispiel:
snapper -c Root delete 80 81
Um Snapshot Nummer ‘80’ und ‘81’ zu löschen. Mit dem list
befehl findet man die zu löschende Snapshot Nummer heraus.
Rollback
FIXME