Dies ist eine alte Version des Dokuments!
Linux Backup mit rsync
Linux Backups können mit rsync perfekt durchgeführt werden. Lest hier, wie es funktioniert.
Einleitung
Mit „rsync“ kann man Verzeichnisstrukturen kopieren. Die Sicherung kann dann mit dem Original verglichen werden und bei Änderungen im Original wird auch die Sicherung aktualisiert.
Vorgehensweise
Legt man von der Sicherung wiederum Kopien an, hat man diverse Versionen.
rsync -av <quelle> <ziel>
erzeugt eine Kopie von <quelle> in <ziel>. Nach einem 2. Aufruf werden nur noch die Änderungen gespeichert.
Um nun eine 2. Version des Backups zu erzeugen kann man einen Hardlink auf das Zielverzeichnis legen:
cp -al <ziel> <backup_alt>
Info
Ein Hardlink ist ein Verweis auf eine Datei. Eine Datei kann somit mehrere Namen haben, also unter mehreren Namen ansprechbar sein. Es wird also keine Kopie der Binärdaten erzeugt, sondern nur ein weiterer Name vergeben. Das hat in unserem Beispiel den Vorteil, dass nur eine „virtuelle“ Kopie gemacht wird und der Plattenplatz nicht weiter eingeschränkt wird. Die Datei würde erst gelöscht werden, wenn auch der letzte Link auf die Datei gelöscht würde. Daher kann man auch alte Sicherungsordner löschen, ohne Datenverluste in neuen Versionen hinnehmen zu müssen.
Ein erneutes Aufrufen von unserem Befehl vergleicht nun die Daten in <ziel> mit <quelle>. Falls Änderungen vorhanden sind, werden diese in <ziel> auch geändert. Die Hardlinks in <backup_alt> bleiben davon unberührt. Das Datenvorkommen was real Plattenplatz benötigt sind die Änderungen.
Nun gibt es noch zwei Sachen, die in der einfachen Version zu beachten sind:
- --delete --delete-excluded : Dateien, die in der Quelle nicht mehr vorhanden sind, z. B. durch Löschen oder Verschieben, werden im Ziel auch gelöscht
- --exclude-from=datei : Hier kann man eine Datei angeben, in der Dateien und Verzeichnisse stehen, die nicht synchronisiert werden sollen. Die einzelnen Einträge stehen je in einer Zeile. Man kann Wildcards benutzen.
Beispiel eines Backupvorgangs
rsync -av --delete --delete-excluded \ --exclude-from=/usr/local/etc/backup_exlude \ /home/imap/MailDir \ /data1/backup/home_imap_MailDIr
cp -al /data1/backup/home_imap_MailDIr \ /data1/backup/home_imap_MailDIr.datum
Hiermit erzeugt man ein Archiv in „/data1/backup/home_imap_MailDir“, zeigt was rsync gerade macht, löscht bei Bedarf Dateien die im Original nicht vorhanden sind. Der Pfad bis zum Backupvereichnis sollte schon vorhanden sein.
Danach kopiert man mit einem Hardlink die Sicherung, um eine „alte“ Version zu erhalten. Dies könnte man natürlich auch vor der nächsten Sicherung machen, da ja gerade zwei mal die selbe Version vorhanden ist.