Timeshift

Aus mxlinuxusers.de
Hauptfenster von timeshift

timeshift ist ein Tool zur Systemsicherung, das im Hintergrund in regelmäßigen Abständen automatische Schnappschüsse der Systemdateien erzeugt. Dazu kann rsync oder (wenn vorhanden) BTRFS benutzt werden. Per Default ist das Homeverzeichnis von diesen Schnappschüssen ausgeschlossen, wird also nicht mitgesichert. Bei Bedarf kann timeshift jedoch auch die versteckten Verzeichnisse im Homeverzeichnis mit sichern, da sich darin die persönlichen Konfigurationseinstellungen der User befinden.

Durch Filtereinstellungen wäre es möglich, auch andere Verzeichnisse oder gar das ganze Homeverzeichnis in die Schnappschüsse mit einzubeziehen, dies ist jedoch nicht das eigentliche Ziel von timeshift. Vom Design her dient timeshift dazu, problemlos ältere Systemzustände wieder herzustellen, ohne die eigentlichen Userdaten (Dokumente, Fotos usw,) zu überschreiben. Man könnte also Anfang Januar sein System in den Zustand vom 18. Dezember zurückversetzen, ohne befürchten zu müssen, die persönlichen Daten und Fotos von der Sylvesterparty zu überschreiben. In diesem Sinne handelt sich bei timeshift genau genommen nicht um ein Backup-Tool, sondern um ein Systemwiederherstellungstool.

Die Benutzung von Timeshift kann per Kommandozeile oder GUI erfolgen.

Hauptfenster[Bearbeiten | Quelltext bearbeiten]

Das Hauptfenster von timeshift ist dreigeteilt:

in der unteren Leiste finden sich Informationen, ob timeshift aktiv ist, wann der letzte (aktuellste) und der älteste Schnappschuss durchgeführt wurde, wieviel Schnappschüsse überhaupt durchgeführt wurden und ganz rechts steht, wieviel Platz auf dem Sicherungsmedium verfügbar ist.

Im grossen mittleren Bereich werden die erfolgten Backups mit Datum und Uhrzeit aufgelistet, von welchem System das Backup gezogen wurde und von welchem Zeitplan ("Schnappschussebene" in timeshift genannt) es ausgelöst wurde. Dazu werden diese Abkürzungen benutzt:

  • O = manuelles Backup
  • B = beim Systemstart
  • H = stündlich
  • D = täglich
  • W = wöchentlich
  • M = monatlich

ganz rechts in der Spalte Kommentare stehen dann Kommentare zum Backup, sofern man dem Backup einen Kommentar mitgegeben hat.

mit der linken Maustaste kann man Backups auswählen. Möchte man mehrere Backups gleichzeitig auswählen, so muss dies mit Strg+linke Maustaste geschehen. Für die so ausgewählten Backups kann man dann mit der rechten Maustaste folgende Aktionen einstellen:

  • Löschen (Schnappschuss wird sofort gelöscht)
  • zum Löschen markieren
  • Dateien auswählen (aus dem Backup, zum Ansehen oder zurückspielen)
  • Protokoll ansehen

In der oberen Leiste befinden sich mehrere Tabs, die entweder sofort die Aktion auslösen oder das zuständige Unterfenster öffnen. Für alle Aktionen mit Backups gilt, wenn man Backups vorher ausgewählt hatte, werden diese Aktionen sofort und ohne weitere Nachfrage durchgeführt, was im besten Fall (z.B. "Durchsuchen") nur etwas lästig sein kann, aber bei "Löschen" ziemlich übel sein dürfte.

Am sichersten ist es also, vorher kein Backup auszuwählen. Dann wird bei der gewählten Aktion im Bedarfsfall gefragt, für welches Backup sie duchgeführt werden soll.

  • Erstellen (Achtung, fängt sofort und ohne Nachfrage mit dem Backup an. Dies lässt sich zwar Abbrechen, führte bei mir aber dazu dass ich auch sofort von meiner Sitzung abgemeldet wurde und mich neu einloggen musste. Sonst kein Problem, aber wenn man gerade ungesicherte Daten in Arbeit ist es doch ärgerlich. Also nur anklicken, wenn man tatsächlich per Hand ein Backup auslösen möchte)
  • Wiederherstellen
  • Löschen (darauf achten, dass keine Backups mit der linken Maustaste ausgewählt wurden, da diese sonst sofort und ohne Nachfrage gelöscht werden)
  • Durchsuchen (öffnet einen Dateimanager, mit dem man sich den Inhalt des Backups ansehen kann und auf gewohnte Weise die gewünschten Arbeiten mit den Verzeichnissen/Dateien durchführen kann - im Editor öffnen, löschen, kopieren, umbenennen usw.)
  • Einstellungen für ein Backup vornehmen oder verändern
  • Assistent (öffnet den Einrichtungsassistenten)
  • Spenden (ist ja auch eine gute Idee, dies ab und zu mal für die Entwickler zu tun)
  • Menu (nun ja, noch ein Menu: bietet ebenfalls die Möglichkeit, sich die timeshift-Protokolle anzusehen und als weiteren Punkt die üblichen Kurzinfos zu timeshift)

Wiederherstellen[Bearbeiten | Quelltext bearbeiten]

zuerst wird durch Anklicken der Schnappschuss ausgewählt, den man wiederherstellen möchte. Danach öffnet sich ein Fenster, in dem das Ziellaufwerk bzw. die Ziellaufwerke eingestellt werden können, also der Ort, wohin der Schnappschuss zurückgespielt werden soll. Als Default sind die Partitionen eingestellt, von denen der Schnappschuss gesichert wurde. Zur Auswahl stehen jedoch alle angeschlossenen Geräte mit einem Linux-Dateisystem, so dass der Schnappschuss auch an einem anderen Ort wiederhergestellt werden kann, bei Bedarf z.B. auf eine externe Festplatte. Schliesst man ein Gerät nachträglich an, oder erscheint es aus anderen Gründen noch nicht in der Geräteliste, so kann diese mit dem Button "Auffrischen" (rechts oben) erneuert/aufgefrischt werden, so dass anschliessend das neu angeschlossene Gerät in der Liste auftaucht.

Weiterhin besteht unten die Möglichkeit, die Grub-Optionen einzustellen, bzw. abzuändern. Da dort in der Regel sinnvolle Werte eingetragen sind, sollte man das nur tun, wenn man genau weiss, was man tut. Dabei hat man folgende Möglichkeiten:

  • soll Grub2 wieder (re-)installiert werden
  • wenn ja, wohin (sda, sdb usw., sogar die Installation auf einzelne Partitionen wie z.B. sda1 wäre möglich)
  • soll initramfs aktualisiert werden
  • soll das Grub-Menu aktualisiert werden

nach Abschluss mit Klick auf "weiter" startet ein Pobelauf, in dem timeshift feststellt, was sich verändert hat, denn nur das muss ja zurückgespielt werden. Danach wird eine Liste mit den auszuführenden Aktionen angezeigt, was erstellt, gelöscht und wiedehergestellt werden soll. Stellt man fest, dass man z.B. den falschen Schnappschuss ausgewählt kann man "Abbrechen" oder wenn alles gut aussieht, "Weiter". Dann, sozusagen als letzte Chance, nochmals eine kurze Zusammenfassung, welches Gerät wohin eingehangen wird (z.B. sda1 -> /boot, sda2 -> /). Ist alles gut -> "weiter" und das Schicksal nimmt seinen Lauf.

Einstellungen[Bearbeiten | Quelltext bearbeiten]

besteht aus fünf Tabs (Unterfenster) die bis auf den Punkt "Filter" den Möglichkeiten des Einrichtungsassistenten entsprechen. Hier können also einzeln oder in selbstgewählter Reihenfolge die gewählten Einstellungen kontrolliert und verändert werden.

Einrichtungsassistent[Bearbeiten | Quelltext bearbeiten]

Beim ersten Aufruf von timeshift öffnet sich der Einrichtungsassistent und bietet Auswahlmöglichkeiten an. Dabei wird im unteren Bereich eine ausführliche deutschsprachige Erläuterung zu den einzelnen Punkten angeboten. Es ist empfehlenswert, sich dies wenigstens einmal durchzulesen, um ein Gefühl dafür zu bekommen, was bei timeshift hinter den Kulissen passiert und so auch die für sich optimale Auswahl treffen zu können.

Der Reihe nach werden folgende Fragen bzw. Auswahlmöglichkeiten angezeigt:

  • Schnappschusstyp auswählen
  • Schnappschussort auswählen
  • Schnappschussebenen auswählen
  • Persönliche Ordner der Benutzer

Schnappschusstyp auswählen[Bearbeiten | Quelltext bearbeiten]

Hier werden die Möglichkeiten rsync oder BTRFS angeboten. BTRFS kann nur angewählt werden, wenn das ganze System auf einer BTRFS-formatierten Festplatte angelegt wurde und diese ausserdem die BTRFS-typischen Subvolumes (z.B. @home) besitzen. Die so erstellten Schnappschüsse werden auch auf dem gleichen Systemlaufwerk abgelegt. Dies hat den Vorteil, dass es sehr schnell erfolgt, aber auch den gravierenden Nachteil, dass sich Daten und deren Sicherung auf dem gleichen Laufwerk befinden. Wird das Laufwerk unbrauchbar, sind nicht nur die Daten, sondern auch deren Sicherung hinüber.

Deshalb wird hier in der Folge nur noch auf rsync-Backups eingegangen.

rsync sichert Daten auf jedem Laufwerk, dass in einem Linux-Dateisystem formatiert ist, die Sicherung kann also z.B. nicht auf einem NTFS-Dateisystem erfolgen. Die Sicherung auf einem Systemlaufwerk wäre möglich, ist aber aus den gleichen Gründen wie bei BTRFS (Laufwerk kaputt = auch Backup kaputt) nicht empfehlenswert. Die Sicherung sollte also am besten auf einem externen Laufwerk erfolgen. Da die Sicherung der Daten jedoch in der Regel im Hintergrund, ohne weiteres Zutun des Users erfolgt, empfiehlt sich ein Laufwerk, das beim Hochfahren automatisch gemountet wird.

Man kann Backups auch von Hand auslösen, in diesem Fall wäre es also möglich, ein Laufwerk als Sicherung zu verwenden, das erst bei Bedarf angeschlossen wird. Dabei verliert man aber den grossen Vorteil des automatisch im Hintergrund ablaufenden Backups.

Per Default werden nur die Systemdateien gesichert, also nicht das Homeverzeichnis. Dies kann aber problemlos im nächsten Schritt nachgeholt werden, sowie überhaupt Dateien und Verzeichnisse nach Belieben für die Sicherung ein- oder ausgeschlossen werden können.

Wie bei allen rsync-basierten Backupsystemen wird nur beim ersten Mal die gesamte Sicherung komplett abgespeichert. Bei den nachfolgenden Sicherungen werden veränderte Dateien inkrementell abgespeichert (nur was sich verändert hat) und unveränderte Dateien als Hardlinks (eine Art Verknüpfung auf die Ursprungsdatei) gespeichert. Dadurch werden in der Regel die nachfolgenden Sicherungen sehr klein. In einem weiteren Schritt kann man einstellen, wie oft diese inkrementellen Sicherungen durchgeführt werden sollen, bevor wieder eine Vollsicherung erfolgt.

Schnappschussort auswählen[Bearbeiten | Quelltext bearbeiten]

um die Auswahl für den Backup-Ort zu erleichtern wird hier zuerst die Größe des Systems ermittelt und alle verfügbaren Speichermedien angezeigt. Bei Medien, die zu klein sind, erfolgt eine Warnung "nicht genügend Speicherplatz". Wählt man trotzdem (oder aus Versehen) ein zu kleines Speichermedium, so öffnet sich ein Warnfenster in dem darauf hingewiesen und die Möglichkeit erwähnt wird, mit einem geeigneten externen Werkzeug mehr freien Speicherplatz zu schaffen. Mit dieser Hilfe kann dann das passende Speichermedium ausgewählt werden.

Auf dem ausgewählten Medium wird von timeshift automatisch ein Verzeichnis timeshift eingerichtet. Innerhalb dieses Verzeichnisses werden dann in weiteren Unterverzeichnisse die einzelnen Backups (Schnappschüsse) gesichert. Hat man z.B. als Ablageort das Verzeichnis /media/user gewählt, so ergibt sich folgende Verzeichnisstruktur:

/media/user/timeshift/
/media/user/timeshift/snapshots
/media/user/timeshift/snapshots-boot
/media/user/timeshift/snapshots-daily
/media/user/timeshift/snapshots-hourly
/media/user/timeshift/snapshots-monthly
/media/user/timeshift/snapshots-ondemand
/media/user/timeshift/snapshots-weekly

wobei alle Verzeichnisse ausser /media/user/timeshift/snapshots nur Verweise (Links) auf das Verzeichnis /media/user/timeshift/snapshots sind. Normalerweise ist es nicht notwendig, diese Ablageorte zu kennen, da timeshift diese bei der Benutzung automatisch anzeigt. Sollte man jedoch irgendwann timeshift nicht erreichen oder aus anderen Gründen nicht benutzen können oder wollen, so kann man mit jedem geeigneten Linuxwerkzeug (Kommandozeile, Dateimanager) in diese Verzeichnisse gehen und alles zurückspielen. Für diesen eventuellen Notfall ist aber nur wichtig, dass sich neben den zuständigen Konfigurationsdateien in jedem dieser Verzeichnisse ein weiteres Unterverzeichnis localhost befindet, in dem sich die eigentlichen Backups als normale Dateien und Verzeichnisse befinden.

Schnappschussebenen auswählen[Bearbeiten | Quelltext bearbeiten]

hier kann man auswählen, ich welchen Zeitabständen Backups ausgeführt werden sollen (monatlich, wöchentlich, täglich, stündlich und beim Systemstart, letzteres wird erst nach einigen Minuten ausgelöst, so daß der Bootvorgang nicht verzögert wird und sich das System in einem konsistenten Zustand befindet) und wieviele Backups für den betreffenden Zeitraum jeweils aufgehoben werden sollen, bis die ältesten wieder mit neueren Backups überschrieben werden. Wählt man z.B. für "täglich" sieben Backups, so hat man alle Backups von Montags bis Sonntags zur Verfügung, und erst wenn die nächste Woche am Montag beginnt, wird das Backup vom vorigen Montag überschrieben. Ähnliches lässt sich für alle anderen Zeiträume einstellen.

Dabei werden Backups immer nur dann ausgeführt, wenn noch genügend Speicherplatz vorhanden ist. Durch die weiter oben beschriebene inkrementelle Speicherung und die Verwendung von Hardlinks kann man allerdings sehr weit kommen. Trotzdem sollte man sich einen für seine Bedürfnisse passenden Zeit- und Wechselplan ausdenken. Bei der monatlichen Speicherung z.B. sechs oder gar zwölf Backups aufzuheben ist zwar möglich, jedoch wird es nur in seltenen Fällen sinnvoll sein, auf ein Backup von vor einem halben, oder gar einem ganzen Jahr zurückzugreifen. Aber wie gesagt, ist es eigentlich nur eine Frage von ausreichendem Speicherplatz. Auf die Schnelligkeit des Backups hätte es keine spürbaren Auswirkungen.

Als einen weiteren Unterpunkt kann man auswählen, ob der Cron-Dienst E-Mails über erledigte Backup-Aufgaben an den User senden soll oder nicht. Die Formulierung dieser Option mit "Cron-E-Mails für geplante Aufgaben anhalten" ist etwas unglücklich weil missverständlich formuliert. Wählt man diese Option an, werden lediglich keine Mails über die Erledigung der Backup-Aufgaben verschickt. Sonstige Cronjobs, die nichts mit Timeshift zu tun haben und Mails versenden sollen, tun dies aber weiterhin. Wenn man nicht gerade nur wöchentliche oder gar monatliche Backups ausgewählt hat, wird man wahrscheinlich diese Option anwählen, um die tägliche oder gar stündliche Mailflut nicht noch zu erhöhen. Für eventuelle Kontrollen gibt es ja auch noch eine Logfunktion von timeshift. Aber letztendes ist das An- oder Abwählen dieser Option wie immer eine persönliche Ermessensfrage.

Persönliche Ordner der Benutzer[Bearbeiten | Quelltext bearbeiten]

hier kann man die Homeverzeichnisse der User (einschliesslich /root), die per Default nicht gesichert werden, mit in das Backup einbeziehen. Dabei hat man für jedes Homeverzeichnis die Wahl, entweder alles auszuschliessen (default), nur die versteckten Einträge einzuschliesen (wichtig wenn man nur die Konfigurationseinstellungen sichern möchte, und die empfohlene Einstellung) oder alles einzuschliessen. Ein feineres Ein- oder Ausschliessen von Dateien und Verzeichnissen kann man an anderer Stelle außerhalb des Einrichtungsassistenten durch reguläre Ausdrücke regeln. Aber auch hier sei nochmals darauf hingewiesen, dass das eigentliche Ziel von timshift darin besteht, System- und Konfigurationsdateien zu sichern. Für Backups von privaten Daten aus dem Homeverzeichnis sollte man ein anderes, besser dafür geeignetes Tool (z.B. backintime) verwenden.

Hat man alles eingestellt, öffnet sich noch ein Fenster "Einrichtung vollständig" mit einer summarischen Zusammenfassung. Ist man damit zufrieden, kann das Fenster geschlossen werden und timeshift mit seiner Arbeit beginnen. Wenn man feststellt, daß man etwas vergessen hat, oder doch anders einrichten möchte, so gibt es hier (wie in jedem anderen Fenster auch) den "Zurück-Button", und man kann so bei jedem Punkt noch Änderungen vornehmen.

Optionen für die Kommandozeile[Bearbeiten | Quelltext bearbeiten]

allgemeine Syntax (alle Kommandos benötigen root-Rechte):

timeshift --check
timeshift --create [OPTIONS]
timeshift --restore [OPTIONS]
timeshift --delete-[all] [OPTIONS]
timeshift --list-{snapshots|devices} [OPTIONS]

statt des Devicenamens kann auch die UUID benutzt werden

Kommandozeilen-Optionen von timeshift
allgemeine Optionen
Option Bedeutung
--snapshot-device <device> Backup device
--yes beantworte alle vorkommenden Abfragen mit JA (mit Vorsicht zu benutzen)
--btrfs nutzt für timeshift den BTRFS Modus
--rsync nutzt rsync für timeshift
--debug zeigt zusätzliche Meldungen für die Fehlersuche an
--verbose zeigt die Ausgaben von rsync an (default)
--quiet zeigt keine Ausgaben an
--scripted timeshift startet im nicht-inteaktiven Modus ohne Nachfragen (für Skripte)
--help zeigt alle Optionen an
Auflistung
Option Bedeutung
--list listet alle Backups auf
--list-devices listet alle für timeshift verfügbaren Laufwerke auf (nicht nur die gerade benutzten)
Backup
Option Bedeutung
--check erstellt ein Backup, aber nur wenn ein geplantes Backup fällig ist
--create erstellt ein Backup, auch wenn es nicht fällig ist
--comments <Beschreibung> fügt eine Beschreibung/Kommentar zum Backup hinzu
--tags {O,B,H,D,W,M} fügt eine Marke (tag) zum Backup hinzu (default: O)
Wiederherstellung
Option Bedeutung
--restore spielt ein Backup wieder zurück. Dabei werden interaktiv die notwendigen Angaben abgefragt
--clone Clone current system
--snapshot <Name> Der Schnappschuss Name wird zurückgespielt
--target <device> auf welches Device soll das Backup zurückgespielt werden
--grub[-device] <device> auf welches Device soll der GRUB2 Bootloader installiert werden
--skip-grub es soll kein GRUB2 wieder hergestellt werden, d.h. der alte, vorhandene GRUB2 wird beibehalten
Löschen
Option Bedeutung
--delete lösche ein Backup, notwendige Angaben werden interaktiv abgefragt
--delete-all lösche alle Backups

Kommandozeilen-Beispiele[Bearbeiten | Quelltext bearbeiten]

wichtige Vorbemerkung: timeshift kann nur mit root-Rechten gestartet werden, deshalb jedes Kommando mit sudo ausführen:

  • Auflisten aller Schnappschüsse
timeshift --list
  • Auflisten der Schnappschüsse, die auf Device /dev/sda1 gesichert wurden
timeshift --list --snapshot-device /dev/sda1
  • erstellt einen neuen Schnappschuss und versieht in mit einem Kommentar und der Marke (tag) D
timeshift --create --comments "vor dem Update vom 19.1.20" --tags D
  • Schnappschuss interaktiv zurückspielen
timeshift --restore
  • spielt den Schnappschuss vom 30.12.2020 wieder auf /dev/sda1 zurück
timeshift --restore --snapshot '2020-12-30_16-29-08' --target /dev/sda1
  • löscht den Schnappschuss vom 14.12.2020
timeshift --delete  --snapshot '2020-12-14_18-30-28'
  • löscht alle Schnappschüsse
timeshift --delete-all

Weblinks[Bearbeiten | Quelltext bearbeiten]