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

Englische Dokumetation

snapper.io Docs

Zuletzt geändert: 2023-10-28 11:58:12 +0200 CEST: remove import status