... 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:
- Timeshift ist in Linux Mint vorinstalliert und sollte deshalb für Backups erste Wahl sein, besonders für ungeübte Benutzer, die Software erst einmal so verwenden, wie sie vorhanden ist.
- Timeshift ist stabil und zuverlässig genug, um im Notfall wirklich (fast) alles Gewünschte zur Wiederherstellung bereit zu haben. Es enthält allerdings Fallen, Notwendiges zu verlieren; die muss man allerdings kennen.
- Timeshift steht für System- und, wenn entsprechend eingerichtet, für Nutzerdaten gleichermaßen zur Verfügung. Damit muss man sich nicht mit mehreren Backupsystem mühen.
- Timeshift arbeitet platzsparend, was durch inkrementelles Sichern erreicht wird.
Komprimieren spart zwar Platz, hat bei universellen Backups aber Nachteile: In einem wirklichen Notfall ist eine Wiederherstellung durch Kopieren immer die einfachste und manchmal einzige Möglichkeit. Bei komprimierten Backups muss ein Dekomprimierungs-Werkzeug zur Verfügung stehen, oder gar, wenn das Backup-System seine eigene Komprimierungsmethode hat, genau dieses Backup-System.
- Timeshift ist fein genug konfigurierbar, um praktisch für jede Datei zu bestimmen, ob sie gesichert wird oder nicht.
Die entsprechenden Einstellungen mit z.B. »Ausnahmen von Ausnahmen von ...« können recht mühsam sein. Das ist aber auch bei anderen guten Backup-Systemen der Fall, die solche Feineinstellungen zulassen.
- Timeshift läuft automatisch im Hintergrund ab. Einmal konfiguriert sind kaum noch manuelle Eingriffe nötig.
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.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.)
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«.
Diese Spalte zeigt die ausgedachten Wünsche zu einer Sicherung:
grün: zu sichernde Daten
rot: auszuschließende Daten |
Die Lösung richtet sich nach den Timeshift-Einstellungen »Benutzer« für den »Persönlichen Ordner /home/{benutzer}« (→ 3.4.) |
Wenn in den Einstellungen »Alle Daten ausschließen« gewählt ist, verwende man diese Spalte |
Wenn in den Einstellungen »Alle Daten einschließen« gewählt ist, verwende man diese Spalte |
Ein Verzeichnis komplett sichern
/home/{benutzer}
- /Bilder
- /2021
- /2022
- /2023
- /Quellen
- 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
- /2022
- /2023
- /Quellen
- 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
- /2022
- /2023
- /Quellen
- 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
- /2022
- /2023
- /Quellen
- 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
- /2022
- /2023
- /Quellen
- 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: 21.06.2024