Snapshots in der Kommandozeile erstellen

Bis vor kurzem habe ich ehrlich gesagt noch nie etwas von Timeshift gehört, da ich für mich im privaten nie den Bedarf eines solchen Tools gesehen habe. Dies änderte sich, als ich nach einer Snapshot-Lösung für Linux gefragt wurde. Bei meiner Recherche flog mir in regelmäßigen Wiederholungen der Name “Timeshift” entgegen. Weswegen ich hiermit einen Blick auf das vielfach angepriesene Tool werfe.
Da der Einsatz über die GUI recht simpel von der Hand geht (und weil grafische Oberfläche eh jeder kann) möchte ich deshalb in diesem Beitrag meinen Fokus auf die Verwaltung und Einrichtung per Kommandozeile legen und einen kleinen Leitfaden geben, wie sich auch ohne Mauszeiger und quadratische Kästchen ein Snapshot in Linux erstellen lässt.
Vorab sei gesagt, dass die Snapshot-Funktion lediglich als Sicherheitsmaßnahme zur Wiederherstellung eines alten Dateisystem-Standes dient und keine gewöhnliche Backup-Lösung darstellt. Eine aufmerksame und pflichtbewusste Bedienung der Linux Maschinen lässt sich dadurch ohnehin nicht ersetzen. 😉

Installation

Timeshift ist mittlerweile in den offiziellen Repositories großer Distro-Betreiber (z.B. Ubuntu 20.04) angekommen und lässt sich folgendermaßen installieren:
Als Debian Paket

sudo apt-get install timeshift

und als RPM Paket

sudo yum install timeshift

Voraussetzung

Als Voraussetzung zur Benutzung von Timeshift wird eine ausreichend dimensionierte Festplatte benötigt. Je nach Belegung schluckt der Snapshot einer Systempartition aber gerade mal um die 20GB. Werden persönliche Daten mitgesichert, erhöht sich ihr Bedarf entsprechend. Bei mehreren Snapshots wird der belegte Plattenplatz fälschlicherweise summiert. Da Timeshift allerdings inkrementelle Sicherungen durchführt, ist die tatsächliche Belegung geringer. Das liegt in erster Linie daran, dass Timeshift auf unveränderte Dateien (seit dem letzten Snapshot) mit Hard-Links referenziert, die ihrerseits zwar keinen Platz belegen, aber denselben Status aufweisen.
Zunächst wird die Festplatte definiert, welche gesichert werden soll. Hierfür wird die UUID, also die eindeutige Kennung der Partition, benötigt. Sie lässt sich folgendermaßen abfragen:

ls -la /dev/disk/by-uuid/
Die Ausgabe zeigt die UUID und ihre dazugehörige Partition.

Sollte nun noch unklar sein, welche Partition sich hinter der Kennung verbirgt, lässt sich dies hiermit abfragen:

df -h

Die UUID wird nun in die Timeshift-Konfig Datei unter /etc/timeshift.json eingetragen:

nano /etc/timeshift.json

In einer der oberen Zeilen kann die UUID hinter dem Eintrag “backup_device_uuid” ersetzt/ ergänzt werden. Außerdem lässt sich weiter unten hinter dem Punkt “exclude” noch definieren, ob das /home-Verzeichnis mit in den Snapshot aufgenommen werden soll oder nicht. Standardmäßig ist dies nicht der Fall.
Empfehlenswert kann es im Falle einer AD-Anbindung außerdem sein, die Datei “/var/log/lastlog” zu exkludieren, da es den Backup-Prozess unter Umständen unverhältnismäßig in die Länge ziehen bzw. das Programm zum einfrieren bringen kann.

Snapshots erstellen

Ein Snapshot lässt sich bereits mit dem Befehl …

timeshift --create

… erstellen. Empfehlenswert ist es allerdings, weitere Parameter zur Steuerung anzugeben, beispielsweise folgendermaßen:

timeshift --create --snapshot-device /dev/sdb1 \
--comment "Mein Backup" --verbose

Dies erstellt ein Backup auf der Festplatte “/dev/sdb1” (–snapshot-device) mit dem Kommentar “Mein Backup” (–comment) und druckt sämtliche Ausgaben auf dem Terminal aus (–verbose).
Soll automatisch jeden Tag ein Snapshot erstellt werden, lässt sich dies mit der Ergänzung des Parameters “–tags” tun:

timeshift --create --snapshot-device /dev/sdb1 \
--comment "Mein Backup" --tags D --verbose

Mithilfe von “–tags” lassen sich nicht nur tägliche sondern auch wöchentliche, monatliche oder on-demand Snapshots erstellen.
–tags D = täglicher Snapshot
–tags W = wöchentlicher Snapshot
–tags M = monatlicher Snapshot
–tags O = on-demand Snapshot

Sollte während des Vorgangs die Fortschrittsanzeige über 100% hinaus gehen bedeutet dies lediglich, dass Dateien gesichert werden, die zuvor nicht in den Snapshot mitaufgenommen worden waren. Möglicherweise bleibt das Programm während des Backup-Prozesses längere Zeit bei derselben Prozentanzeige hängen. Dies kann je nach Größe der zu sichernden Platte variieren und ist nicht weiter schlimm.
Nach erfolgtem Backup liegen die Dateien auf der Ziel-Festplatte unter dem Ordner “/timeshift/snapshots” bereit.

Snapshots wiederherstellen

Mit folgendem Kommando lassen sich die Snapshots wiederherstellen:

timeshift --restore

Im Anschluß des Befehls wird ein Eingabeprompt gestartet und fordert weitere Eingaben.
Sind mehrere Festplatten vorhanden, wird zunächst abgefragt von welcher der Snapshot bezogen werden soll.

Ist mehr als ein Snapshot vorhanden soll noch der gewünschte ausgewählt werden.

Schlußendlich wird gefragt, ob der Bootloader ebenfalls wiederhergestellt werden soll. Es empfiehlt sich in aller Regel dies zu tun.

Es folgt eine Zusammenfassung der getroffenen Auswahl die sich entweder bestätigen oder abbrechen lässt. Bevor damit fortgefahren wird, sollten nun sämtliche Arbeiten an der Maschine beendet, sowie möglichst alle Programme und Dienste geschlossen werden um impersistente Daten zu vermeiden.

Nach Abschluß des Vorgangs wird die Maschine automatisch neu gestartet.
Nach erfolgtem Neustart ist der Stand des Snapshots wiederhergestellt!

3 Kommentare zu „Snapshots in der Kommandozeile erstellen“

  1. hi Nordmann,
    ganz großes Kino, Deine Seite… – vielen Dank, hat mir schon sehr viele achsogehtdas-Momente verschafft… 🙂

    viele Grüße André

    (kleine Berichtigungen zu timeshift:
    bei: ‘ls -la /dev/disk/by uuid/’ fehlt ein Bindestrich: ls -la /dev/disk/by-uuid/
    bei mir liegt die json Datei hier: (nano) /etc/timeshift/timeshift.json
    )

  2. Vielen Dank für die Anleitung. Genau danach hatte ich gesucht. Wandert direkt in die Lesezeichen… Ich habe im Nachhinein noch die Nutzung von BTRFS auf true geändert, weil das nicht automatisch erkannt wurde. Mal schauen, ob das funktioniert. Jetzt kann das Upgrade auf 24.04 LTS für unserer Server kommen.

Kommentar verfassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Nach oben scrollen