Mit dem Tool Cya erstellen Sie ein Backup der Systemdateien, das Sie im Ernstfall schnell wieder einspielen.
Es erstaunt immer wieder, wie viele Anwender auf ein Backup verzichten. Das rächt sich spätestens dann, wenn das Kind bereits in den Brunnen gefallen ist. Backup-Software sichert generell Verzeichnisse, Partitionen oder gleich eine ganze Installation, wobei man bei Letzterem von einem Disk-Image oder einem Snapshot spricht.
Dann gibt es noch Tools, die nur das Betriebssystem selbst sichern und anschließend wiederherstellen, nicht aber die Anwenderdaten. In diese Riege gehört auch Cya, was für “Cover Your Ass(ets)” steht und auf eine amerikanische Redensart zurückgeht, die jugendfrei übersetzt etwa “Bring deine Schäfchen ins Trockene” bedeutet.
Das rund 80 KByte große Bash-Skript setzt, wie viele andere Backup-Tools, auf Rsync auf. Es will Anwender und System nicht mit einer grafischen Oberfläche belasten, sondern als Werkzeug dienen, das nach einer einmaligen Konfiguration die gestellte Aufgabe mit einem einzigen Befehl oder automatisiert im Terminal in Gang setzt. Damit bietet sich Cya für Server an oder für Situationen, in denen keine grafische Oberfläche bereitsteht.
Vielseitig
Das von der Firma Cyberweb Solutions entwickelte Skript kann nach Aussage des Entwicklers Snapshots jeder Linux- und BSD-Distribution erstellen und theoretisch sogar von jedem System, das eine Bash und Rsync bietet. Dabei weiß es mit allen dort verwendeten Dateisystemen inklusive ZFS und Btrfs umzugehen. Die Software steht unter einer BSD-Lizenz, sodass jedermann den Code einsehen und für eigene Zwecke anpassen darf. Cya eignet sich hervorragend, um per Systemd oder Cron automatisiert zu laufen oder um es in Skripte einzubinden.
Von der Funktion her gleicht die Arbeitsweise von Cya den Wiederherstellungspunkten von Microsofts System Restore, das ebenfalls nur das Betriebssystem selbst ohne Daten der Benutzer sichert. Dabei setzen Sie das System im Bedarfsfall über einen solchen Punkt auf einen früheren Status zurück. Dasselbe bietet auch Cya. Das Home-Verzeichnis bleibt dabei unberührt – zumindest bislang. Denn in der neuesten Version sichert die Software über die Funktion CYA Mydata separat die Daten des Benutzers.
Standardmäßig legt das Programm automatisiert oder manuell drei Snapshots an. Danach überschreibt es den jeweils ältesten. Dieses Verhalten dürfen Sie, wie fast alles andere, anpassen. So kann Cya auch Snapshots anlegen, die es nicht überschreibt oder die nicht einmal in der Liste der Sicherungen auftauchen. Sie erhalten also eine weitgehende Kontrolle darüber, was Sie wie sichern.
Die Software sichert standardmäßig ohne Komprimierung oder ein proprietäres Format. Das erlaubt es, auf einfache Weise nicht nur die gesamte Installation zurückzuspielen, sondern bei Bedarf auch einzelne Dateien oder Verzeichnisse. Dazu benötigen Sie nicht zwangsweise die Restore-Funktion von Cya, es genügt im Prinzip ein Dateimanager oder ein Tool fürs Terminal.
Keine Installation
Da es sich bei der Software um ein Skript handelt, brauchen Sie Cya nicht auf dem klassischen Weg zu installieren. Sie laden es als Zip-Archiv herunter [1], das Sie entpacken. Dann kopieren Sie die Datei cya ins Verzeichnis bin/ des Home-Verzeichnisses. Falls die verwendete Distribution dieses nicht standardmäßig vorgibt, erstellen Sie es von Hand und fügen es der Variable $PATH hinzu [2].
Damit steht das Skript schon parat. Als einzige weitere Voraussetzung verlangt es, dass das System für den Einsatz von Sudo konfiguriert ist [3]. Haben Sie das erledigt, stellen Sie sicher, dass Sie sich im Home-Verzeichnis befinden, und führen Sie den Befehl cya aus (Abbildung 1). Falls nichts passiert, melden Sie sich einmal ab und wieder an – bei den meisten Distributionen sollte das aber nicht nötig sein.
Wie Sie sehen, legt das Programm einen neuen User cya sowie einige Verzeichnisse und Dateien an. In points/ landen künftig Snapshots. Die Datei cya.conf steht noch leer – hier speichern Sie eigene Optionen für die Konfiguration. Die Datei LAST_RUN dient als Anhaltspunkt, wann die Software zum letzten Mal lief.
Der Aufruf cya help fördert alle Optionen und Parameter zutage, mit denen Sie Cya steuern (siehe Tabelle “Cya-Befehle”). Die Standardeinstellungen genügen für viele Anwendungsfälle; trotzdem sollten Sie sich mit den Möglichkeiten vertraut machen, die es gibt, um im Zweifelsfall die passenden Kommandos parat zu haben.
|
Befehl |
Ergebnis |
|---|---|
|
Snapshots erstellen |
|
|
|
Snapshot erstellen (rotierend) |
|
|
manuellen Snapshot erstellen (außerhalb der Rotation) |
|
|
Backup des Home-Verzeichnisses |
|
|
Snapshot manuell archivieren |
|
Wiederherstellung |
|
|
|
Daten wiederherstellen |
|
Sonstiges |
|
|
|
Hilfe für manuelle Konfiguration |
|
|
zu sichernde Verzeichnisse auflisten |
|
|
erstellte Snapshots auflisten |
|
|
manuelle Snapshots entfernen |
|
|
Linux-Mount-Skript |
|
|
Anwendungsfälle für Skripteinbindung |
|
|
Update-Check |
Konfiguration
Zur Konfiguration geben Sie cya configfile ein. Hier sehen Sie Beispiele für das Abwandeln der Konfiguration. Benötigen Sie eine Rotation mit mehr als drei Durchgängen, dann ändern Sie MAX_SAVES="" und schreiben diese Anweisung und alle weiteren in die noch leere Datei cya.conf unter /home/cya/. Sie dürfen dann gleich noch Dateien und Verzeichnisse hinzufügen oder ausschließen, bis das Ergebnis Ihren Wünschen entspricht. Die Reihenfolge spielt dabei keine Rolle.
Haben Sie die Konfiguration abgeschlossen, starten Sie die erste Sicherung. Dazu geben Sie im Terminal einfach cya save ein (Abbildung 2). Daraufhin sichert das Skript das System mit Ausnahme von /home/. Den Snapshot legt Cya im Home des vom System angelegten Users cya im Verzeichnis points/ab.

Abbildung 2: Beim ersten Snapshot setzt die Software die soeben vorgenommene Konfiguration um. Die gesicherten Daten legt sie im Verzeichnis points/ ab.
Liegt das Home-Verzeichnis auf einer separaten Partition und verwenden Sie die automatische Methode, müssen Sie auf genügend freien Platz für mindestens vier Sicherungen achten. Diese Anzahl ergibt sich daraus, dass das Programm bei der automatischen Methode jeweils drei Snapshots vorhält und danach rotiert.
Durchnummeriert
Rufen Sie cya oder cya list auf, sehen Sie unter Punkt 1 den ersten Snapshot mit Datum und Uhrzeit. Weitere Snapshots, die Sie automatisiert oder mit cya save erstellt haben, nummeriert das Tool durch und rotiert sie bei Bedarf (Abbildung 3).
Mittels cya keep erstellen Sie manuelle Snapshots, die nicht der Rotation unterliegen. So etwas bietet sich an, um etwa gleich nach der Installation des Betriebssystems einen Snapshot unter einem Namen wie Basis-Installation zu erstellen. Auch wenn Sie ein großes Update oder ein umfangreiches Paket einspielen, gibt das vorherige Erstellen eines Snapshots zusätzliche Sicherheit.
Sollte etwas schiefgehen, rollen Sie das System auf einen vorherigen Zustand zurück. Während Sie den Snapshot Basis-Installation behalten sollten und bei Bedarf mittels cya archive archivieren, entsorgen Sie vor Updates erstellte Snapshots mit dem Befehl cya remove wieder, wenn Sie sie nicht mehr benötigen.
Manuell und per Skript
Nach Eingabe des Befehls cya keep fordert das Programm Sie auf, einen eindeutigen Namen für den Snapshot zu vergeben, der keine Leerstellen enthalten darf. Alternativ geben Sie gleich im Befehl einen Namen vor, etwa beim Einsatz in Skripten. Ein entsprechender Befehl wäre etwa cya keep name pre_upgrade.
Der weitere Ablauf ist derselbe wie bei den automatischen Sicherungen, außer dass der Snapshot nicht in einem nummerierten Verzeichnis liegt. Stattdessen landet er in einem Ordner, der den vergebenen Namen trägt. Bleiben wir also bei der oben vorgegebenen Sicherung gleich nach Installation des Betriebssystems als Beispiel, dann wären die Daten unter /home/cya/points/basisinstallation zu finden.
Möchten Sie die Software in einem Skript einsetzen, das etwa automatisch monatlich einen Snapshot anlegt und den vorherigen dabei überschreibt, lautet der Befehl etwa cya keep name monatlich overwrite. Hier geht das Tool ebenfalls inkrementell vor und berücksichtigt nur Änderungen seit dem letzten Snapshot.
Möchten Sie die Sicherungen nicht überschreiben, verwenden Sie stattdessen cya keep name monatlich-DATE, womit Sie das Skript anweisen, das jeweilige Datum an den Namen anzuhängen.
Wiederherstellung
Jedes Backup- oder Snapshot-System ist nur so gut wie seine Funktion zum Wiederherstellen der Daten. Daher lohnt es sich, das Restore zu testen, bevor der Ernstfall eintritt. Als Erstes erstellen Sie mit dem Befehl cya script ein Recovery-Skript.
Dabei legen Sie fest, welche Verzeichnisse das System beim Wiederherstellen einhängen muss. Hier dürfen Sie bei Bedarf selbst Einträge vornehmen, falls Sie zusätzliche Verzeichnisse einbinden möchten (Abbildung 4). Das Skript sollten Sie gleich nach erfolgter Konfiguration erstellen und separat sichern.

Abbildung 4: Das Recovery-Skript beinhaltet Befehle zum Einhängen der nötigen Partitionen, um das einfache Wiederherstellen zu gewährleisten. Sie dürfen es an individuelle Bedürfnisse anpassen.
Lagern Sie wiederherzustellende Daten außerhalb der Standardverzeichnisse, tragen Sie die fraglichen Ordner von Hand in das Skript recovery.sh unter /home/cya/ ein. Liegt also etwa /var/ bei Ihrem Rechner auf einer externen Festplatte, fügen Sie diesen Mountpoint hier hinzu. Das fertige Skript recovery.sh kopieren Sie auf einen USB-Stick, den Sie später in ein Live-System einhängen, über das Sie die Sicherungen wieder einspielen.
Wie bereits erwähnt, sollten Sie den Ablauf testen, bevor der Ernstfall eintritt, damit Sie mit dem Vorgehen vertraut sind. Ändert sich die Hardware, das Layout der Partitionen oder die Version von Cya, dann sollten Sie cya script erneut ausführen, um das Skript anzupassen.
Der Prozess des Wiederherstellens setzt ein Live-System voraus. Das starten Sie über einen USB-Stick, ein optisches Medium wie eine CD oder ein Netboot-Image. Wenn möglich, verwenden Sie hierzu die Version des Betriebssystems, die der wiederherzustellenden Installation entspricht.
Für einen Praxistest löschten wir das Verzeichnis boot/ auf einer Maschine mittels sudo rm -rf /boot. Damit war der Rechner nicht mehr bootfähig. Cya musste also dieses Verzeichnis wiederherstellen, um nach dem Restore überhaupt ein bootendes System zu haben.
Recovery vom Live-System
Von einer gestarteten Live-Sitzung aus hängen Sie zunächst, falls nicht automatisch geschehen, den USB-Stick mit dem Recovery-Skript ein und wechseln in der Konsole dorthin. Alternativ könnten Sie die entsprechende Partition von Hand mounten und den absoluten Pfad zum Skript in home/cya/ angeben. Dann starten Sie das Skript mit dem Befehl ./recovery.sh und folgen den Anweisungen (Abbildung 5).

Abbildung 5: Der Start des Recovery-Skripts in der Live-Umgebung leitet das Wiederherstellen ein. Starten Sie es innerhalb der normalen Installation, verweigert es den Dienst.
Zunächst wählen Sie aus, welchen Snapshot Sie wiederherstellen wollen. Dann können Sie einen aktuellen Snapshot des installierten Systems erstellen. In unserem Testfall ergabt das keinen Sinn, da das System nicht mehr bootfähig war; bei der späteren Diagnose eines kaputten Systems kann es aber helfen.
Als Nächstes entscheiden Sie, ob das Skript Dateien, die nicht im Backup liegen, im installierten System entfernt. Die Antwort auf die letzte Frage entscheidet, ob das Recovery in einem Rutsch läuft oder ob Sie jedes Verzeichnis des Root-Baums einzeln bestätigen wollen. In unserem Beispiel ergab Letzteres Sinn, da wir wussten, dass dem System lediglich das Boot-Verzeichnis fehlte. Falls Sie nicht wissen, was kaputt ist, wäre Nein die richtige Antwort.
Nun erscheint eine letzte Warnung, dass die Software ab hier alle Daten überschreibt. Cya zeigt die gewählten Optionen und wartet darauf, dass Sie zum Start des Prozesses das Wort restore eingeben (Abbildung 6). Dann arbeitet das Skript die gewählten Optionen ab (Abbildung 7).

Abbildung 6: Cya warnt, dass sich ab hier der Prozess nicht mehr umkehren lässt. Anschließend startet es das Wiederherstellen der verlorengegangenen Dateien.

Abbildung 7: Zunächst bestimmen Sie, welche Sicherung Sie einspielen wollen. Dann legen Sie fest, ob Sie zusätzlich eine aktuelle Sicherung des installierten Systems erstellen möchten.
Innerhalb weniger Minuten bis zu einer halben Stunde, je nach gewählten Optionen und verwendeter Hardware, ist der Prozess beendet, und die Software fordert Sie auf, das installierte System neu zu starten (Abbildung 8).

Abbildung 8: Der Befehl cya list zeigt nach dem Start des wiederhergestellten Systems die während des Restore zusätzlich angelegte aktuelle Sicherung.
Fazit
Es gibt viele Alternativen, um Wiederherstellungspunkte für ein System-Restore zu erstellen. Cya wirkt zwar auf den ersten Blick komplex, doch was wirkt sich langfristig positiv aus: Das Skript bietet sehr viele Möglichkeiten zum Anpassen und eignet sich ebenso für den Desktop-Einsatz wie für die Verwendung via SSH auf einem Server (Abbildung 9).
Wie bei jedem Backup-Programm sollten Sie den Ablauf inklusive Restore mindestens einmal durchspielen. Das Projekt hat als Hilfestellung den gesamte Vorgang vorbildlich auf der Webseite sowie in rund 20 Youtube-Videos zu den einzelnen Themen dokumentiert [4].
Haben Sie Cya erst einmal konfiguriert und mit einem Cronjob oder Systemd-Timer versehen, brauchen Sie bis zum Eintritt des Ernstfalls nichts weiter zu tun. Manuelle Snapshots erledigen Sie bei Bedarf in wenigen Sekunden. Cya machte im Test keinerlei Probleme und ersetzt beim Autor künftig das bisher zu diesem Zweck verwendete Clonezilla.
Infos
-
PATHerweitern: Ferdinand Thommes, “Schaltpult”, LU 03/2018, S. 80, https://www.linux-community.de/40506 -
Su und Sudo: Roman Jordan, “Starkes Duo”, LU 04/2018, S. 26, https://www.linux-community.de/40509
-
Videos: https://www.youtube.com/watch?v=fdH3Um4XNUs&list=PL7DdW0jxJRrEQfKXeuIzTWmPyomIp4k4Y








