Notebook-Backup mit rsync und Dirvish

Bislang hatte ich echt Glück mit meinen Notebooks. Die Platten sind stabil geblieben, und auch die Software hat mich nicht hängen gelassen. Backups habe ich sträflich vernachlässigt. Ich habe welche gemacht, ja. Aber manuell, und somit nur alle paar Monate mal. Mea Culpa.

OK, jetzt also richtig. Und mit meinem Werkzeugkasten.

Mein Handy sichere ich schon seit ich Android benutze mit rsync. Alle verwertbaren Daten werden so nachts in ein Verzeichnis auf meinem Backup-Server gesynct. Da habe ich also immer eine Kopie des aktuellen Standes. Um auch historische Versionen zu haben sichere ich dieses Verzeichnis auf dem Server nochmal mit dirvish. Das macht sogenannte Hardlink-Backups, so dass ich mehrere historische Stände haben kann in denen identische Dateien nicht mehrfach Plattenplatz brauchen.

So ähnlich machen wir das jetzt auch mit dem Notebook.

Wegschreiben mit rsync über SSH

Erstmal kopiere ich den Public-SSH-Key des root-Benutzers auf dem Notebooks in die ~/.ssh/authorized_keys auf dem Backup-Server. Das geht ganz einfach mit ssh-copy-id root@backup (als root auf dem Notebook). Jetzt kann ich schon mein gewünschtes Backup-Kommando ausführen ohne nach einem Passwort gefragt zu werden:

Allerdings kann jetzt jeder der auf dem Notebook root ist beliebig auf den Server zugreifen. Davon hängen keine Menschenleben ab, aber es geht um das Prinzip. SSH to the rescue: auch wenn der Public Key eines Benutzers autorisiert wurde kann man ihn so restriktiv abschliessen dass nur ein bestimmtes Kommando ausgeführt werden kann. Dazu führe ich mein rsync mit einer zusätzlichen Option aus (bin steht hier beispielhaft für irgendein kleines Verzeichnis):

Irgendwo in der reichhaltigen Ausgabe steht dann die Zeile die an den Server geschickt wird:

Dieses Kommando trage ich jetzt in die .ssh/authorized_keys auf dem Server ein, die Datei beginnt also wie folgt:

Ab sofort gilt dieser autorisierte Schlüssel also nur noch für dieses eine Kommando.

Automatisieren mit Anacron

Das Problem war wie gesagt dass ich nicht die Disziplin aufgebracht habe, wirklich regelmäßig das Backup anzustoßen. Das Handy läuft die ganze Nacht durch, da kann ich das rsync jeden Tag um halb fünf starten. Aber mein Notebook ist dann in der Regel aus. An dieser Stelle hilft Anacron. Im Gegensatz zu einem einfachen cron werden hier Jobs auch ausgeführt wenn der Rechner nur sporadisch an ist. Ich lege also ein Skript /etc/cron.daily/10_backup an:

Man beachte das ionice -c 3 das ich da noch reingemogelt habe. Das Backup ist eine hohe IO-Last, mit dem ionice macht der Prozess nur dann IO wenn gerade niemand anders die Ressourcen belegt. Ich will nicht dass der Backuplauf mich bei der Benutzung des Notebooks hindert.

Geschichte erhalten mit Dirvish

Ich werde hier kein komplettes Dirvish-Setup beschreiben. Nur soviel: Dirvish ist ein Tool das Hardlink-Backups anlegt. Das heisst, dass für jeden Tag (bei täglichen Backups) eine komplette Kopie des Backup-Verzeichnisses angelegt wird. Allerdings nicht indem die Dateien wirklich dupliziert werden, sondern indem ein kompletter Satz Hardlinks angelegt wird. Dadurch sieht es so aus als ob der komplette Baum doppelt existiert, er nimmt aber nur einmal Platz auf der Platte ein. In die neue Kopie wird dann ein rsync ausgeführt. Das bewirkt dass Dateien die sich tatsächlich geändert haben innerhalb des Hardlink-Konstruktes überschrieben werden. So nehmen Änderungen dann natürlich auch wirklichen Plattenplatz ein.

Diese Art von Backup ist schnell zusammengeskriptet. Dirvish hat aber den Charme dass man schön konfigurieren kann wie lange welches Backup vorgehalten werden soll. So kann ich sagen dass ich die letzte Woche komplett haben möchte, das Sonntags-Backup soll zwei Monate vorgehalten werden, und das erste eines Monats für ein halbes Jahr.

Ich nutze Dirvish seitdem ich Backups meiner Linux-Server anlege, und es hat mir so schon einige Male das Gesäß gerettet.

Perfekt?

Sicher nicht. Auf dem Server brauche ich immer noch mindestens den doppelten Platz. Einmal durch mein rsync, einmal durch Dirvish.

Ich will nicht ausschließen dass es noch jede Menge anderer Punkte gibt die ich verbessern könnte. Aber so funktioniert die Sache erstmal für mich. Das Notebook wird täglich gesichert, und ich muss mich nicht kümmern. Perfekt. :-)

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.

;-) :-) :-D :-| :-/ :-( :-P more »