Wolfgang Pavel: Wie man Timeshift als universelles Backup-Werkzeug verwenden kann.

... für Linux Mint 19 und spätere.
Timeshift-Version 18.6 und später

Timeshift gibt es seit einigen Jahren in den Linux-Debian, -Ubuntu, -Mint-Paketen. In Mint ist es seit Version 19 vorinstalliert. Da ist das zwar erst einmal für die Sicherung der Systemdateien gedacht; man kann aber ohne weiteres benutzereigene Dateien und Verzeichnisse in die Sicherung einbeziehen. Ein Grund, darüber nachzudenken, es als universelles Backup-Werkzeug für alles einzusetzen.

Warum Timeshift?
Backup muss sein. Timeshift hat die Eigenschaften eines guten Backup-Werkzeugs:
Leider hat Timeshift Schwächen in seiner Bedienung. Das kann zu Fehlern führen und die Sicherheit der Backups gefährden, gerade bei Ungeübten. Hier merkt man, dass bei der Erstellung von Timeshift leider nur an das Backup des Systems gedacht wurde und die Möglichkeit zum Backup weiterer Daten eher ein Nebeneffekt ist, von den Herstellern wohl eher unbeabsichtigt.
Das von Mint vorinstallierte »Datensicherungswerkzeug« = »Backup Tool" = "mintbackup" kann man gerne vergessen.
Fängt man an, Timeshift für weitere Daten einzurichten, ist man öfter ratlos, ob und wie man etwas machen kann und denkt oft an Fehler – in Timeshift oder bei sich selbst. Eine umfassende Benutzungs-Dokumentation fehlt; unverzichtbar, wenn man Timeshift nicht nur für die voreingestellten Dinge nutzen will, sondern auch für eigene Backups.
Deshalb habe ich hier ein kleines Manual zusammengestellt; weitestgehend aus meinen experimentellen Erfahrungen, weniger aus offiziellen Quellen. Manches ist deshalb vielleicht nicht ganz richtig oder fehlt; dafür bitte ich um Entschuldigung und – wichtiger – um Mitteilung.


Anfangs, nach Installation und erstmaligem Start von Timeshift wird automatisch eine Grundeinrichtung von Timeshift mit dem »Einrichtungsassistenten« angefordert. Man kann die gemachten Einstellungen später jederzeit ändern; entweder wieder mit dem »Einrichtungsassistenten« (Menüpunkt »Assistent« → 2.9.) oder über den Menüpunkt »Einstellungen« (→ 3. Einstellungen). Für das Folgende wird vorausgesetzt, dass Timeshift bereits eingerichtet ist.

1. Funktionsweise von Timeshift
1.1. Sicherungen:
Wenn aufgrund des »Zeitplans« oder manuell ein neuer Sicherungsvorgang ausgelöst wird, werden alle Dateien, die aufgrund von Einstellungen, insbesondere der »Filter«, zu berücksichtigen sind, in einem »Snapshot« zusammengefasst gepeichert.
Aber Achtung: Gemountete oder verlinkte Daten werden unter Umständen – trotz entsprechender Einstellungen – nicht gesichert, ohne dass man das gleich erkennt. Aber man kann vorbeugen. Siehe dazu → 5.
Für jede Datei wählt Timeshift eine von 3 Möglichkeiten:
  • Die Datei ist neu, also noch nicht in einer vorhergehenden Sicherung enthalten; oder die Datei wurde seit der letzten Sicherung inhaltlich verändert: Dann speichert Timeshift eine vollständige Kopie des Dateiinhalts und im Snapshot einen Verweis (»Hardlink«) dazu.
  • Die Datei ist schon in vorher in der Sicherung enthalten und wurde seitdem inhaltlich nicht verändert: Dann speichert Timeshift in dem neuen Snapshot nur den Verweis (»Hardlink«) zu dem bereits vorhandenen Inhalt der Datei.
  • Die Datei ist im Original nicht mehr vorhanden: Dann ignoriert Timeshift diese Datei.
1.2. Praktische Auswirkungen:
Dieses Verfahren hat wesentliche praktische Auswirkungen:
  • Solange der Inhalt einer Datei nicht verändert wird, ist dieser auch über viele Sicherungen hinweg nur einmal als Kopie im Sicherungsbereich von Timeshift gespeichert. (Quasi-inkrementelle Sicherung). Das spart viel Platz, denn die immer gespeicherten Verweise (»Hardlinks«) belegen nur jeder wenige Kilobytes.
  • Man entfernt eine oder mehrere Dateien aus einer Sicherung – entweder durch Löschen eines Snapshots, in dem sie vorkommt, oder gezielt einzeln. (→ 2.2. und → 2.4.). Dann wird erst einmal nur der Veweis (»Hardlink«) zu jeder entfernten Datei gelöscht. Die Kopie des Inhalts bleibt gespeichert, wenn die Datei noch in irgendeinem anderen Snapshot enthalten ist. Das führt dazu, dass der Speicherbedarf von Timeshift – erkennbar an der Angabe im Timeshift-Fenster rechts unten – kaum abnimmt, auch wenn die entfernten Dateien groß oder viele sind. Erst wenn der letzte und einzige Verweis (»Hardlink«) auf eine Datei entfernt wird, wird auch der Inhalt der Datei gelöscht (vom Dateisystem, nicht von Timeshift) und der dafür benötigte Speicherplatz frei.
  • Alle »Hardlinks« zu einer Datei sind gleichwertig und unabhängig voneinander. Deshalb spielt die Reihenfolge, in der man diese Verweise löscht, keine Rolle. Der Dateiinhalt bleibt erhalten, solange es mindestens einen Verweis (»Hardlink«) dazu gibt. Man muss sich deshalb auch in Timeshift keine Gedanken machen, in welcher Reihenfolge man Snapshots löschen müsste.
    Darin unterscheiden sich »Hardlinks« von den häufiger gebrauchten »Softlinks«, auch als »Verknüpfungen« bekannt. Dort gibt es genau eine Originaldatei, auf die die »Softlinks« verweisen. Die »Softlinks kann man zwar beliebig löschen, ohne der Datei zu schaden; sobald man aber die Originaldatei löscht, ist ihr Inhalt verloren; wenn dann noch »Softlinks" zu ihr vorhanden sind, führen diese ins Leere und sind fehlerhaft.
  • Betrachtet man die Snapshots in einem Dateimanager (z.B. → 2.4.), wird der Speicherbedarf einer Datei in allen Snapshots in ihrer vollen Inhaltsgröße angezeigt, sodass es aussieht, als ob ihr Inhalt in jedem Snapshot voll gespeichert – also vielfach vorhanden – wäre. Tatsächlich repräsentiert jeder »Hardlink« seine Datei wie ein Original; der Inhalt ist jedoch nur einmal gespeichert.
1.3. Speicherstruktur des Sicherungsbereichs:
In den Einstellungen (→ 3.2.) wird als Ort für die Sicherungen eine Festplatten-Partition festgelegt. Diese wird dann (derzeit?) standardmäßig auf /run/timeshift/backup montiert. Diesen Mountpoint kann man in /etc/fstab oder über das Tool »Laufwerke« an beliebige andere Stelle legen; muss dann aber die Partition vor dem Start von Timeshift montieren, am besten zum Systemstart (auto in fstab). Alles was zu den Timeshift-Sicherungen gehört, ist dann dort im Unterverzeichnis /timeshift gespeichert. Dieses enthält mehrere Unterverzeichnisse, von denen /timeshift/snapshots das wesentliche ist und die eigentlichen Sicherungen enthält. Die übrigen Unterverzeichnisse (/timeshift/snapshots-boot, /timeshift/snapshots-weekly, /timeshift/snapshots-daily, /timeshift/snapshots-weekly, /timeshift/snapshots-monthly, /timeshift/snapshots-ondemand) enthalten nur Verknüpfungen (»Softlinks«) zu den Snapshots im erstgenannten Verzeichnis /timeshift/snapshots. Ihre Einordnung entspricht ihrer zeitlichen »Schnappschussebene« aus dem Zeitplan und dient nur organisatorischen Zwecken von Timeshift. Eine praktische Bedeutung für den Anwender von Timeshift konnte ich darin nicht erkennen.
In dem Verzeichnis /timeshift/snapshots ist für jeden Snapshot ein Verzeichnis angelegt; der Name des Verzeichnisses ist der Zeitpunkt, an dem der Snapshot gemacht worden ist. In einem solchen Verzeichnis /timeshift/snapshots/{zeitpunkt} sind abgelegt:
  • localhost, ein Verzeichnis, das alle Verzeichnisse und Dateien enthält, die zum Zeitpunkt dieses Snapshots laut Einstellungen zu sichern waren, und zwar in derselben Baumstruktur wie die Originale. Wenn man dieses Verzeichnis localhost im Dateimanager ansieht, bekommt man dasselbe wie mit der Timeshift-Funktion »Durchsuchen« (→ 2.4.). Soweit Dateiinhalte (für neue und geänderte Dateien) gesichert wurden, sind sie hier gespeichert, für ungeänderte Dateien liegen hier nur Verweise (»Hardlinks«) (→ 1.1. Sicherungen).
  • exclude.list, eine Textdatei mit allen Filtern, mit der der betreffende Snapshot gemacht wurde. Das sind nicht nur die in den Timeshift-Einstellungen eingetragenen Filter, sondern auch die von Timeshift implizit hinzugefügten. (→ 4.)
  • info.json, eine Textdatei mit einigen Systeminformationen, für den Anwender eher unbedeutend.
  • rsync-log, eine Textdatei, die alle in der Sicherung zum Zeitpunkt des betreffenden Snapshots enthaltenen Verzeichnisse und Dateien auflistet, was innerhalb Timeshift dem Menüpunkt »Durchsuchen« (→ 2.4.) entspricht.
  • rsync-log-changes, eine Textdatei, die dasselbe enthält, was mit der Timeshift-Funktion »Protokoll zum Erstellen ansehen« (→ 2.5.), grafisch etwas aufbereitet, angezeigt wird. Hier werden nur neue und geänderte Dateien aufgelistet, also solche, deren Inhalte auch in diesem Snapshot gespeichert sind.
2. Das Timeshift-Fenster (Snapshot-Liste und Menü)
Timeshift zeigt nach Start immer eine Liste aller vorhandenen (vollständigen) Snapshots in zeitlich aufsteigender Reihenfolge. Alle Sicherungen bilden eine einzige Kette, unabhängig von der Sicherungsursache (stündlich, täglich, ...); die angegebenen »Schlagwörter« haben nur informative Bedeutung.
Zum Bearbeiten eines einzelnen Snapshots sind 3 der 6 Menüpunkte geeignet, wobei der gewünschte Snapshot durch Markieren ausgewählt sein muss, oder das Kontextmenü des Snapshots (rechte Maustaste). 3 weitere Menüpunkte sind unabhängig von einem bestimmten Snapshot.
2.1. Menüpunkt »Wiederherstellen«: Alle in dem ausgewählten Snapshot enthaltenen Dateien werden in den Zustand vesetzt, in dem sie zum betreffenden Datum waren. (Zur Wiederherstellung einzelner Dateien → 2.4.)
2.2. Menüpunkt »Löschen« oder Kontextmenü »Löschen« (gleichbedeutend): Der betreffende Snapshot wird gelöscht. Von den darin enthaltenen Dateien wird erst einmal nur der Verweis (»Hardlink«) gelöscht, der Inhalt nur, wenn die Datei nicht auch noch in einem anderen Snapshot enthalten ist. Deshalb kann es sein, dass der Speicherbedarf von Timeshift beim Löschen eines Snapshots kaum heruntergeht, obwohl große oder viele Dateien darin enthalten waren. → 1. Funktionsweise.
2.3. Kontextmenü »Zum Löschen markieren«: Beim nächsten Sicherungsvorgang wird dieser Snapshot gelöscht, in derselben Weise wie → 2.2. Achtung: Diese Markierung lässt sich, soweit ich sehen konnte, nicht wieder rückgängig machen.
2.4. Menüpunkt »Durchsuchen« oder Kontextmenü »Dateien auswählen« (gleichbedeutend): Es öffnet sich der Standard-Dateimanager mit dem gewählten Snapshot – kann etwas dauern. Außer der Kontrolle, welche Dateien hier gesichert sind, kann von hier aus auch die Wiederherstellung einzelner Dateien gemacht werden: einfach mit den üblichen Mitteln die betreffende(n) Datei(en) an einen gewünschten Zielort kopieren. Man könnte hier auch einzelne Dateien aus dem Snapshot löschen (Kontextmenü »Löschen« bzw. »delete« – nicht »Papierkorb«; denn das ist der im Systembereich, wird üblicherweise nicht geleert und der Speicherplatz bleibt belegt.). Auch hier wird (→ 2.2.) erst einmal nur der Verweis (Hardlink) gelöscht; sodass der bei einer großen Datei vielleicht erwartete Speichergewinn nicht eintritt. Dafür müsste die Datei in allen Snapshots gelöscht werden, in denen sie unverändert vorkommt.
2.5. Kontextmenü »Protokoll zum Erstellen ansehen«: Es werden Dateien aufgelistet, die bei der betreffenden Sicherung als »erstellt« oder »geändert«, also mit Inhalt gespeichert wurden. Das Textfeld mit dem irreführenden Vortext »Gerätenamen oder-nummer angeben« wirkt als Anzeigefilter: es werden nur Dateien gelistet, in deren Pfad und Name der eingegebenen Text vorkommt. Für die Information, welche Dateien insgesamt – also auch unveränderte – im Snapshot enthalten sind und weitere Informationen, z.B. belegter Speicherplatz, muss man zum Menüpunkt »Durchsuchen« (→ 2.4.) wechseln.
Das die Anzeige einschränkende Auswahlmenü rechts oben erschien mir nicht sehr hilfreich.
2.6. Abgebrochene Snapshots werden in der Liste nicht angezeigt. Das kann zu folgendem irritierenden Effekt führen: Man löscht (→ 2.2.) alle Snapshots aus der Liste; trotzdem belegt Timeshift noch viele GB Speicher. Denn beim Abbruch eines Snapshots – manuell oder durch externere Umstände – bleiben die bis zum Abbruch gesicherten Dateien duerhaft liegen.
Zum Erkennen und dann auch Löschen abgebrochener Snapshots gehe man so vor: Man markiere in der Snapshot-Liste keinen Snapshot (wenn nicht die Liste sowieso leer ist). Dann wähle man den Menüpunkt »Durchsuchen«. Es öffnet sich (→ 2.4.) der Standard-Dateimanager, aber nicht mit einem einzelnen Snapshot, sondern mit der Liste aller Snapshots. Da sind auch die abgebrochenen dabei – welche, muss man evtl. durch Vergleich mit der normalen Liste feststellen. Mit Kontextmenü »Löschen« bzw. »delete« – nicht »Papierkorb«; denn das ist der im Systembereich, wird üblicherweise nicht geleert und der Speicherplatz bleibt belegt – kann jetzt auch jeder abgebrochene Snapshot entfernt werden.
2.7. Menüpunkt »Erstellen«: Es wird sofort eine Sicherung erstellt und als neuer Snapshot angefügt. Ein Knopf »Abbrechen« erlaubt, den Vorgang vorzeitig abzubrechen; siehe aber → 2.6.
Für das Testen z.B. neuer Filtereinstellungen ist diese manuelle Sicherung ein gutes Werkzeug; solange deaktiviere man am besten im Zeitplan alle automatischen Sicherungen (→ 3.3.).
2.8.  Menüpunkt »Einstellungen« ist in → 3. Einstellungen erklärt.
2.9.  Menüpunkt »Assistent« lässt in einzelnen Schritten einige Grundeinstellungen für Timeshift festlegen, wird bei erstmaliger Benutzung von Timeshift automatisch angefordert. Der Punkt kann später jederzeit wieder aufgerufen werden, um diese Einstellungen zu ändern. Das und mehr kann aber genau so gut mit dem Menüpunkt »Einstellungen« (→ 3.) gemacht werden.
3. Einstellungen
Mit dem Menüpunkt »Einstellungen« bekommt man ein Fenster mit 5 Tabs:
3.1. Typ: Wenn man Timeshift als universelles Backup-Werkzeug verwenden will, wähle man rsync. Das alternative BTRFS (in Timeshift erklärt) ist nur für die Systemsicherung geeignet.
3.2. Ort, an dem die Sicherungen gespeichert werden sollen. Es kann nur eine ganze Partition ausgewählt werden. Am besten ist eine extra Festplatte, intern oder extern. Sind im Zeitplan automatische Sicherungen eingestellt, muss eine externe Festplatte natürlich immer mitlaufen.
Timeshift speichert Sicherungen und seine organisatorischen Daten in dieser Partition im Verzeichnis /timeshift. Es ist möglich, in derselben Partition parallel zu /timeshift weiteres zu speichern, ist aber aus Gründen der Übersichtlichkeit nicht zu empfehlen. Abzuraten ist, im Verzeichnis /timeshift direkt Manipulationen (Änderungen, Löschungen) vorzunehmen; so etwas sollte man nur im Timeshift-Programm selbst machen. Weiteres siehe → 1.3.
3.3. Zeitplan: Die Einstellunngen sind selbsterklärend. Es ist müßig, aus der Zahl angelegter Sicherungen auf den dafür benötigten Speicherplatz zu schließen; siehe auch → 1. Funktionsweise. Man kann auch ganz auf automatische Sicherungen verzichten: alle Werte auf Null; Timeshift meldet dann »deaktiviert«. Nun kann man jederzeit manuell Sicherungen erstellen (→ 2.7. Menüpunkt »Erstellen«). Besonders empfehlenswert ist dies zum Testen, während man die Filter einrichtet.
3.4. Benutzer: Die hier gemachten Einstellungen erscheinen als zwei zusätzliche Filter in der Filterliste. Diese beiden Filter können nicht entfernt werden. Eigene abweichende Filter müssen in der Liste vor diesen Filtern stehen, um zu wirken (siehe → 4.2. Filter wirken auf Filter).
Einer der beiden Filter wirkt auf den "Persönlichen Ordner", also »/home/{benutzer}«. Diese Einstellung legt die Grundlage für Feineinstellungen mit zusätzlichen Filtern, wie benutzereigene Dateien in Sicherungen einbezogen werden sollen. Mit jeder der 3 Einstellungen sind alle gewünschten Ein- und Ausschlüsse erreichbar; nur sind die Methoden für die dann notwendigen Filter verschieden. Siehe auch → 6. Beispiele.
3.5. Filter: Regeln und Syntax zu den Filtern sind in → 4. Filter erklärt.
4. Filter: Regeln, Syntax, Beispiele
Die Filter bestimmen, welche Dateien gesichert werden. Jeder Filter ist eine einzeilige Textangabe, im wesentlichen ein Pfad mit zusätzlichen Zeichen unterschiedlicher Bedeutung. Bei jeder Sicherung werden die aktuell eingestellten Filter ausgewertet; dh. verschiedene Snapshots können mit unterschiedlichen Filtern gemacht werden. Bei einer universellen Anwendung von Timeshift kann das allerdings zur Unübersichtlichkeit führen.
4.1. Woher die Filter kommen: Die Filter stammen aus 3 Quellen:
  • Implizit von Timeshift hinzugefügt werden etliche Filter, die Verzeichnisse und Dateien ausschließen,welche üblicherweise nicht gesichert werden, z.B. tmp, cache, usw., sowie die Homeverzeichnisse anderer Benutzer.
    Es gibt offenbar keine Möglichkeit, diese Filter zu ändern oder zu entfernen, auch nicht außerhalb von Timeshift, z.B. in einer Konfigurationsdatei. Soweit ich sehen kann, ist die Liste dieser Filter im binären Programm (/usr/bin/timeshift) fest eingebaut. Mit nur einzelnen Ausnahmen stehen diese Filter immer am Anfang aller Filter. So kann man auch die Wirkung dieser Filter nicht mit zusätzlichen eigenen Filtern beeinflussen.
    Diese impliziten Filter sieht man auch nicht im Einstellungen-Menüpunkt »Filter« direkt, sondern nur, wenn man dort »Zusammenfassung« wählt; und dort kann man nichts ändern.
  • Der Menüpunkt »Einstellungen – Tab Benutzer« (→ 3.4.) fügt die gemachten Einstellungen in Form weiterer Filter in die Filterliste ein; für den eigenen Home-Bereich ist das:
    • »Alles ausschließen« ergibt den Filter
      ➖/home/benutzer/**
    • »Versteckte Einträge einschließen« ergibt den Filter
      ➕/home/benutzer/.**
    • »Alles einschliessen« ergibt den Filter
      ➕/home/benutzer/**
    Diese Filter werden an das Ende aller Filter gesetzt. Noch ein weiterer Filter, nämlich
    ➖/home/*/**
    , wird am Ende hinzugefügt; diesen sieht man jedoch nicht im Menüpunkt »Filter«, sondern erst in der »Zusammenfassung«. Zu beachten z.B. bei → 5.3.. Manuell erstellte Filter erscheinen zunächst unter diesen automatisch erstellten. Man sorge dann immer dafür, dass diese automatisch eingefügten Filter wieder am unteren Ende der Filterliste stehen, weil man abweichende Filtereinstellungen nur davor machen kann. (→ 3.4.). Trick: Es genügt bei diesen beiden Filtern, sie zu »entfernen«, was zwar nicht geht, aber den »entfernten« Filter an das Listen-Ende schiebt.
  • Mit dem Menüpunkt »Einstellungen – Tab Filter« bekommt man eine edierbare Liste der aktuell gültigen Filter; die impliziten sind hier nicht zu sehen; die über »Benutzer« eingefügten können nicht geändert oder entfernt werden. Im übrigen können hier beliebige Filter hinzugefügt, geändert, entfernt werden (→ 4.3.)
    In diesem Tab kann man mit dem letzten Knopf »Zusammenfassung« die aktuelle Liste aller Filter anzeigen lassen; mit dabei sind auch die impliziten und über »Benutzer« eingefügten Filter.
4.2. Filter wirken auf Filter: Jeder Filter wirkt nicht nur auf die Sicherung, sondern auch auf die Gültigkeit der ihm in der Liste nachfolgenden Filter. Beispiele dazu (die Syntax wird später erklärt):
Es sei in den »Einstellungen – Benutzer« (→ 3.4., → 4.1.) für den persönlichen Ordner »Alles ausschließen« eingestellt.
Im eigenen Home-Verzeichnis gäbe es ein Verzeichnis A mit Unterverzeichnissen B1, B2, ...
  • Das Verzeichnis A soll als Ausnahme zu »Alles ausschließen« mit ganzem Inhalt (Unterverzeichnisse und Dateien) in die Sicherung einbezogen werden. Mit dem Filter
    ➕/home/benutzer/A/**

    sollte das syntaktisch gehen. Das funktioniert aber nicht, weil weder das Verzeichnis benutzer noch das Verzeichnis benutzer/A bereits einbezogen ist. Abhilfe schafft:
    ➕/home/benutzer/
    ➕/home/benutzer/A/
    ➕/home/benutzer/A/**
    
    Die erste Filter bezieht benutzer ein – ohne Inhalt, damit nicht alles einbezogen wird, was in benutzer liegt; der zweite Filter bezieht A ein, der letzte Filter kennt nun benutzer und A und wirkt wie gewünscht. Die drei Filter kann man auch zusammenfassen (→ 4.4.):
    ➕/home/benutzer/A/***
    
  • Auch die Reihenfolge der Filter ist wichtig, weil Filter auf die in der Liste nachfolgenden Filter wirken, aber nicht rückwirkend sind. In dem vorherigen Beispiel soll jetzt die Sicherung fast wie zuvor alle Unterverzeichnisse von A einschließen, mit Ausnahme von B2. Die folgende Filterfolge funktioniert nicht:
    ➕/home/benutzer/A/***
    ➖/home/benutzer/A/B2/
    
    Der ersten beiden Filter sind dieselben wie im vorigen Beispiel. Der letzte Filter soll zwar B2 aus der Sicherung ausschließen; weil B2 aber vorher als Teil von A bereits eingeschlossen ist, bleibt das wirkungslos. Das Gewünschte erreicht man stattdessen mit
    ➖/home/benutzer/A/B2/
    ➕/home/benutzer/A/***
    
    Jetzt wird B2 von der Sicherung ausgeschlossen; der Einschluss dann von A samt Inhalt wirkt sich nicht rückwirkend aus.
    Die Reihenfolge der Filter ändert man, indem man einen Filter in der Liste mit der Maus (linke Taste) nach oben oder unten zieht.
4.3. Bearbeiten der Filter:
  • Jeder Filter ist eine Zeile in der Liste: mit der Alternativauswahl links bestimmt man, ob die vom Filter betroffenen Dateien und Verzeichnisse in die Sicherung eingeschlossen (Symbol ➕) oder von der Sicherung ausgeschlossen (➖) werden sollen. Den Text des Filters kann man wie üblich mit Maus und Tastatur edieren, wenn man zweimal auf den Text klickt.
  • Einen neuen Filter bekommt man durch einen der »Hinzufügen«-Knöpfe. Es ist eher unwesentlich, welchen man wählt, da man, wie zuvor gesagt, jeden Filter danach beliebig edieren kann. Neue Filter sind immer erst mit »ausgeschlossen« (➖) markiert; ggf. einfach ändern.
    Meist wird ein neuer Filter unten in die Liste eingefügt und man muss ihn noch an die gewünschte Stelle in der Liste ziehen (→ 4.2.)
    • »Hinzufügen« ist universell. Es öffnet ein kleines Eingabefenster, in das man schon einmal einen Text schreiben kann, der als neue Zeile eingefügt wird. Es muss nicht unbedingt ein »Muster« sein, und Aus-/Einschließen und den Text kann man dann weiterhin noch ändern.
    • »Dateien hinzufügen« bzw. »Ordner hinzufügen« öffnet ein Dateiauswahlfenster, in dem man ein oder mehrere Dateien bzw. einen Ordner auswählen (markieren) kann; nach »Öffnen« wird für jede gewählte Datei bzw. für den gewählten Ordner ein Filter in die Liste eingefügt, der diese ausschließt – bei Ordner auch den ganzen Inhalt. Für Dateien ist das
      pfad/datei
      , für einen Ordner ist das
      pfad/ordner/***
      . Anschließend wird man meist noch ändern: z.B. von Aus- zu Einschließen, statt des gesamten Ordnerinhalts (durch ***) etwas anderes, und an die gewünschte Listenstelle ziehen. Dabei darf aus einem mit »Ordner hinzufügen« eingefügten Filter durchaus dann auch ein Dateifilter werden und umgekehrt.
      Ich verwende »Dateien/Ordner hinzufügen« hauptsächlich, um mich vor Schreibfehlern bei längeren Pfaden zu schützen; ändern tue ich danach sowieso noch.
    • »Entfernen«: Es können ein oder in der üblichen Weise mehrere Filterzeilen markiert, und dann mit diesem Knopf aus der Liste entfernt werden. Timeshift hat hier eine unangenehme Macke: Bei Verwenden dieses Knopfes werden alle eben gemachten Änderungen an anderen Filtern zurückgesetzt; deshalb: immer erst »Entfernen«, dann »Hinzufügen« und Edieren; oder zwischendurch einmal »Schließen« und Filterliste neu öffnen.
    • »Zusammenfassung« (→ 4.1.) zeigt die aktuelle Liste aller Filter; für die selbsterstellen ist das nur eine Wiederholung.
      Ich habe keine schnelle Möglichkeit, also ohne eine Sicherung zeitraubend testweise durchzuführen, gefunden, sich anzeigen zu lassen, welche Dateien insgesamt, also nicht nur neue und geänderte, aktuell gesichert wären oder ob eine bestimmte Datei gesichert wäre (→ 2.5.).
4.4. Einige Syntaxregeln der Filter: Es wird nicht zwischen Ein- und Ausschließen unterschieden; der Filtertext ist für beides gleich. Bei der praktischen Anwendung in der Filterliste ist aber → 4.2. zu beachten, insbesondere die gewählte Einstellung in »Einstellungen – Benutzer«. Die Regeln sind im wesentlichen die des Kommandos rsync, auf dem Timeshift aufbaut. Die Beispiele hier betreffen die häufig anzuwendenden Wirkungen auf Pfade von Verzeichnissen und Ordnern. Nicht dargestellt sind hier die Möglichkeiten detaillierter Textmuster, z.B. »A*« für alles, was mit A anfängt, oder »X?Y« für ein Schriftzeichen zwischen X und Y. Eine komplette Beschreibung bekommt man mit der Manpage für rsync, entweder in der Konsole (man rsync) oder über https://linux.die.net/man/1/rsync.
  • pfad/name
    : betrifft eine Datei oder ein Verzeichnis »name« im angegebenen pfad.
  • pfad/name/
    : betrifft ein Verzeichnis »name«, aber keine Datei, im angegebenen pfad.
  • pfad/*
    : betrifft alle Dateien und alle Verzeichnisse im angegebenen pfad, aber nicht Dateien und Unterverzeichnisse in den betroffenen Verzeichnissen.
  • pfad/*/
    : betrifft alle Verzeichnisse im angegebenen pfad, aber keine Dateien, und nicht Dateien oder Unterverzeichnisse in den betroffenen Verzeichnissen.
  • pfad/**
    : betrifft alle Dateien und Verzeichnisse im angegebenen pfad und alle Dateien und Unterverzeichnisse in den betroffenen Verzeichnissen rekursiv in beliebiger Tiefe; also alles was im angegebenen pfad liegt.
  • pfad/**/
    : betrifft Verzeichnisse im angegebenen pfad und alle Unterverzeichnisse in den betroffenen Verzeichnissen rekursiv in beliebiger Tiefe; also alle Verzeichnisse, die im angegebenen pfad liegen, aber keine Dateien.
  • pfad/***
    : ist eine Kombination aus
    pfad/
    und
    pfad/**
    , betrifft also alles, was im angegebenen pfad liegt und auch pfad selbst; wichtig wenn pfad bis dahin ausgeschlossen ist. (→ 4.2.)
  • pfad/***/
    : ist eine Kombination aus
    pfad/
    und
    pfad/**/
    , betrifft also keine Dateien, aber alle Verzeichnisse und Unterverzeichnisse (rekursiv), die im angegebenen pfad liegen und auch pfad selbst; wie zuvor wichtig wenn pfad bis dahin ausgeschlossen ist. (→ 4.2.)
  • In pfad und name können Jokerzeichen (Wildcards) verwendet werden:
    • ?
      steht für ein beliebiges Schriftzeichen, ausgenommen \
      So betrifft
      A?BC?D
      alles wie A1BC2D, AxBC+D, usw.
    • [klassenangabe]
      steht für ein Schriftzeichen, dass der klassenangabe entspricht.
      A[123]x
      betrifft A1x, A2x und A3x .
      [Pp]auli
      betrifft Pauli und pauli .
      Y[uv,1-3]Z
      betrifft YuZ, YvZ, Y1Z, Y2Z und Y3Z .
      Viele weitere Möglichkeiten.
4.5. Filter ex- und importieren: Filtereinstellungen sind fehleranfällig; kleinste Fehler können wichtige Dateien in der Sicherung fehlen lassen oder viel überflüssigen Speicherbedarf durch ungewollte große Dateien verursachen. Deshalb sollte man von einer einmal ausgetesteten, gut laufenden Filterliste eine Sicherungskopie machen, insbesondere bevor man wieder einmal Änderungen daran vornimmt. Macht man durch Fehler die Filter unübersichtlich unbrauchbar, könnte man die Sicherungskopie und damit wenigstens den früheren funktionierenden Stand zurückholen. Doch diese fast selbstverständlichen Funktionen Export und Import der Filterliste gibt es in Timeshift nicht. Außerhalb von Timeshift kann man sich so helfen:
Die aktuelle Filterliste steht – im Systembereich – in der Textdatei /etc/timeshift/timeshift.json zusammen mit einigen Timeshift-Konfigurationsdaten. Diese Datei kann man an einen beliebigen Ort kopieren. Bei Bedarf kopiert man sie nach /etc/timeshift/timeshift.json zurück, wofür man allerdings Admin-Recht benötigt.
5. Fallen, die man kennen muss, um ihnen vorzubeugen:
5.1 Timeshift sichert keine verlinkten Daten: Die üblichen Softlinks (»Verknüpfungen«) auf Verzeichnisse oder Daten werden wie scheinbare Verzeichnisse bzw. Daten in eine Sicherung aufgenommen; in der Sicherung verweisen sie aber nur auf das Original, sind also selbst keine Kopie der Daten. Das ist irrtums-anfällig: Sieht man sich ein solches Verzeichnis in der Sicherung an, wie z.B. in → 2.4. beschrieben, scheint alles in Ordnung; alle Inhalte sind zu sehen. Diese sind aber gar nicht gesichert; man sieht nur die Originale; wenn dort etwas kaputt geht, gibt es keine Wiederherstellungsmöglichkeit aus der Sicherung.
Leider verwaltet Timeshift dies nicht, obwohl das zugrunde liegende rsync das in seinen Optionen enthält (--copy-links).
Abhilfe: Will man den Inhalt verlinkter Daten in die Sicherung aufnehmen, darf man nicht die Links in die Sicherung aufnehmen, sondern man muss das explizit für die Originale durch entsprechende Filter einstellen. Sowieso ist zu empfehlen, alle Links per Filter von der Sicherung auszunehmen, um Irrtümern gleich vorzubeugen – egal, ob man die Originale in die Sicherung aufnimmt oder nicht.
5.2 Timeshift sichert keine Dateien aus außen liegenden Partitionen: Das betrifft alle Partitionen, die außerhalb des Root- oder Homeverzeichnisses liegen; das gilt auch, wenn vorhanden, für Partitionen auf der internen Festplatte, die dort neben der Systempartition angelegt sind. Solche Partitionen sind meist üblich im Rootverzeichnis »gemountet«. Wenn so eine Partition einen Mountpoint »/{mountpointname}« oder auch oft den automatischen "/mnt/{bezeichnung}" hat, ist in einer Timeshift-Sicherung zwar das Verzeichnis »{mountpointname}« bzw. »{bezeichnung}« vorhanden, aber leer. Das ist irreführend: man sieht die Partition in der Sicherung und bemerkt nicht, dass ihre Daten gar nicht gesichert sind.
Abhilfe: Man mounted die betreffenden Partitionen im Home-Verzeichnis; also auf einen Mountpoint »/home/{mountpointname}"«; auch »/home/{benutzer}/{mountpointname}« ist möglich, aber nicht notwendig. Den Mountpoint kann man über einen Eintrag in der Datei /etc/fstab bestimmen oder mit dem Tool »Laufwerke«, das in Linux Mint standardmäßig installiert ist (Paket »gnome-disk-utility«). Dann kann man die enthaltenen Daten als »/home/{mountpointname}/...« bzw. »/home/{benutzer}/{mountpointname}/...« in Timehift-Filter aufnehmen. Man beachte den nächsten Punkt → 5.3.).
5.3 Andere Home-Verzeichnisse sind trotz »Alle einschließen« standardmäßig ausgeschlossen: Ein Filter
➖/home/*/**
wird implizit von Timeshift eingefügt, wenn auch an das Ende der Filterliste. Diesen Filter sieht man aber nicht in der Filter-Bearbeitungsliste! Mit der Benutzereinstellung »Alle Dateien einschließen« wird nur der Filter
➕/home/{benutzer}/**
erzeugt (den man sieht). Andere Verzeichnisse unter home bleiben ausgeschlossen.
Abhilfe:Für alle anderen zu sichernden Verzeichnisse unterhalb home muss ein Filter + /home/{name des verzeichnisses}/** zusätzlich manuell erstellt werden.
5.4. Überlauf des Timeshift-Speichers durch Flatpaks: Seit einiger Zeit bietet Linux Mint immer mehr Anwendungen als Flatpak an – nur oder zusätzlich zum Systempaket. Diese Anwendungen belegen erheblich mehr Speicherplatz, was in ihrer Eigenschaft liegt, alle notwendigen Module mitzubringen und nicht aus geteilten Bibliotheken zu beziehen. Beim Update einer solchen Anwendung wird nahezu das gesamte Paket neu gespeichert, was Timeshift dazu veranlasst, für das gesamte Paket ein Backup anzulegen, anstatt nur für geänderte Dateien. Das kann dazu führen, dass Timeshift Speichermangel meldet und seinen Dienst praktisch einstellt. Mit dem in Linux Mint bereits vorinstallierten Baobab ("Festplattenbelegungsanalyse") – das auch schon in der Timeshift-Fehlermeldung angeboten wird – sieht man gut, dass die Flatpak-Pakete im Systembereich (in /var/lib/flatpak ) die wesentlichen Verursacher sind. Diese sind standardmäßig in der Timeshift-Sicherung enthalten.
Abhilfe: Mit dem Filter
➖/var/lib/flatpak/***
hat man Ruhe vor diesen Speichermangelmeldungen. Allerdings sind dann die Flatpak-Anwendungen nicht mehr durch Backups gesichert. Das ist wohl weniger schlimm; geht eine Flatpak-Anwendung kaputt, ist sie mit der »Anwendungsverwaltung« von Linux Mint einfach neu installiert.
Im Gegensatz zu den Flatpaks selbst werden aber die benutzereigenen Einstellungen zu Flatpaks von Timeshift standardmäßig nicht gesichert. Dabei sind die Flatpak-Daten im Benutzerbereich weniger speicheraufwändig und durchaus sicherungswürdig. Um die benutzereigenen Einstellungen doch zu sichern, muss man entweder »Versteckte Einträge einschließen« bestimmt haben (→ 3.4.) oder »/home/benutzer/.var/app/***« für alle Flatpaks oder Entsprechendes für einzelne Flatpaks in die Timeshift-Filterliste eingetragen haben.
6. Beispiele.
Die wohl nächstliegende Anwendung dieser Erklärungen ist das Sichern von eigenen Daten aus dem »Persönlichen Ordner« /home/{benutzer}. Die folgenden Beispiele zeigen ein paar typische Aufgaben, unterschieden nach den Einstellungen »Benutzer« für den »Persönlichen Ordner /home/{benutzer}« (→ 3.4.), und zwar »Alle Dateien ausschließen« und »Alle Dateien einschließen«. Die dritte Möglichkeit »Nur versteckte Dateien einschließen« ergibt für alle versteckten Dateien dasselbe wie »Alle einschließen«, für die anderen »Alle ausschließen«.
In den Beispiel-Strukturen bedeuten grün: zu sichernde Daten, rot: auszuschließende Daten.
Beispiel»Alle Daten ausschließen«»Alle Daten einschließen«

Ein Verzeichnis komplett sichern

/home/{benutzer}
  • /Bilder
    • /2021
      • bild1.jpg und weitere
    • /2022
      • bild2.jpg und weitere
    • /2023
      • bild3.jpg und weitere
    • /Quellen
      • quelle1.html und weitere
    • bild4.png
    • liste.txt
➕/home/{benutzer}/Bilder/*** kein Filter nötig
Alle nicht gefilterten Daten
werden gesichert

Ein Verzeichnis komplett ausschließen

/home/{benutzer}
  • /Bilder
    • /2021
      • bild1.jpg und weitere
    • /2022
      • bild2.jpg und weitere
    • /2023
      • bild3.jpg und weitere
    • /Quellen
      • quelle1.html und weitere
    • bild4.png
    • liste.txt
kein Filter nötig
Alle nicht gefilterten Daten
werden nicht gesichert
➖/home/{benutzer}/Bilder/***

   statt dessen hier auch möglich:
   ➖/home/{benutzer}/Bilder/
   oder auch:
   ➖/home/{benutzer}/Bilder

Nur ein bestimmtes Unterverzeichnis sichern

/home/{benutzer}
  • /Bilder
    • /2021
      • bild1.jpg und weitere
    • /2022
      • bild2.jpg und weitere
    • /2023
      • bild3.jpg und weitere
    • /Quellen
      • quelle1.html und weitere
    • bild4.png
    • liste.txt
➕/home/{benutzer}/Bilder/
➕/home/{benutzer}/Bilder/2023/***
➕/home/{benutzer}/Bilder/2023/***
➖/home/{benutzer}/Bilder/**

Ein bestimmtes Unterverzeichnis ausschließen

/home/{benutzer}
  • /Bilder
    • /2021
      • bild1.jpg und weitere
    • /2022
      • bild2.jpg und weitere
    • /2023
      • bild3.jpg und weitere
    • /Quellen
      • quelle1.html und weitere
    • bild4.png
    • liste.txt
➕/home/{benutzer}/Bilder/
➖/home/{benutzer}/Bilder/2021/
➕/home/{benutzer}/Bilder/**
➖/home/{benutzer}/Bilder/2021/

Alle Jahre, außer 2023, ausschließen; alles andere sichern

/home/{benutzer}
  • /Bilder
    • /2021
      • bild1.jpg und weitere
    • /2022
      • bild2.jpg und weitere
    • /2023
      • bild3.jpg und weitere
    • /Quellen
      • quelle1.html und weitere
    • bild4.png
    • liste.txt
➕/home/{benutzer}/Bilder/
➕/home/{benutzer}/Bilder/2023/***
➖/home/{benutzer}/Bilder/20*/***
➕/home/{benutzer}/Bilder/**
➕/home/{benutzer}/Bilder/2023/***
➖/home/{benutzer}/20*/***
In allen Fällen steht am Ende u.a. noch der von »Timeshift« automatisch angefügte Filter. ➖/home/{benutzer}/** ➕/home/{benutzer}/**

Geschrieben: Oktober 2018 – Letzte Änderung: 04.01.2024