Eine rein manuelle Datensicherung ist nicht immer einfach. Man muss schon sehr gewissenhaft arbeiten, damit in schlimmsten Fall tatsächlich eine aktuelle Datensicherung verfügbar ist.
Inkrementelles Backup mit rsync
Wie bereits oben geschrieben, ist eine manuelle Datensicherung immer potenziell unsicher und abhängig vom Anwender. Eine automatisierte Datensicherung kann nicht vergessen werden – gelegentliche Kontrollen reichen aus, immer einen aktuellen Sicherungsbestand vorzuhalten.
Linux bringt von Haus aus alle nötigen Komponenten für eine automatische Datensicherung mit. rsync, cron und auch das automatische Einbinden von USB-Platten zu dem Zeitpunkt, wenn sie angeschlossen werden: udev.
In diesem Artikel geht es nicht nur um das reine script mit rsync, sondern ich werde auch auf Grundlagen eingehen, die für bereits erfahrene Anwender vielleicht langweilig sind. Wer nur die scripts sucht, überspringt einfach die ersten Artikel.
Ich habe bereits eine automatische Datensicherung auf meinem Server beschrieben, hier werde ich sie weiter ausbauen.
Backup Grundlagen
In diesem Teil stelle ich Backup-Strategien etwas ausführlicher dar.
Einführung
Aus meinen täglichen Snapshots kann ich keine versehentlich gelöschten Dateien wiederherstellen, die nächste Sicherung wird eine im Source gelöschte Datei auch in der Datensicherung löschen. Also will ich vom Snapshot ein tägliches inkrementelles Backup erstellen und kann dann über mehrere Tage zurück gehen.
Dabei werde ich die Backups mit einem Datum versehen, das Backup wird ausserdem die Veränderungen seit der ersten Sicherung widerspiegeln. Obwohl es die komplette File-Struktur darstellt, soll möglichst wenig Speicherplatz auf der Festplatte verwendet werden. Und der gesamte Prozess soll natürlich automatisch ablaufen.
Begriffe
Die folgenden Begriffe werde ich in diesem Text benutzen:
Source Directory
Ein Verzeichnis auf der Festplatte, das gesichert werden soll. Dazu werden die Originaldaten kopiert. Als Abkürzung wird SOURCE benutzt
Target Directory
Ein Verzeichnis auf der Festplatte in das die zu sichernden Dateien kopiert werden. Als Abkürzung werde ich TARGET benutzen.
Backup Strategien
Voll-Backup
Angenommen, es gibt ein Verzeichnis A in dem normalerweise gearbeitet wird. Am Tag 1 wird ein volles Backup erzeugt in A-Voll1. Am Tag 2 wird ein neues volles Backup in A-Voll2 erzeugt. An diesem und an allen weiteren Tagen wird für jede Datensicherung der komplette Platz des Verzeichnisses A benötigt. Bei jeder neu angelegten Datei vergrössert sich der Platzbedarf. Das kann sich schnell summieren, je nach Größe des Verzeichnisses A.
Inkrementelles Backup
Am Tag 1 wird ein volles Backup aus dem Verzeichnis A erzeugt in, sagen wir, A-Voll. Am nächsten Tag (Tag 2) wird ein inkrementelles Backup A-2 erzeugt, dass nur noch die Veränderungen zu A-Voll enthält. Da nur die veränderten Dateien neu übertragen werden, ist diese Sicherung schnell und spart Platz auf der Festplatte gegenüber einem Voll-Backup.
Am dritten Tag (Tag 3) wird ein inkrementelles Backup A-3 erzeugt. Dieses Backup enthält nur noch die Veränderungen zu A-2.
Das ist das Konzept einer inkrementellen Datensicherung. Nur was sich zum vorhergehenden Backup verändert hat, wird neu gesichert.
Differentielles Backup
Beim differenziellen Backup wird immer gegen das erste Backup verglichen. Jeden Tag wird aus Verzeichnis A das kopiert, was unterschiedlich zu A-Voll ist. A-2 enthält alle Veränderungen von A zu A-Voll. A-3 enthält wieder alle Veränderungen von A zu A-Voll. Werden in A viele neue Dateien angelegt oder verändert, wächst der Platzbedarf mit fortschreitenden Sicherungen immer weiter an.
Als Beispiel würde die Datensicherung A-10 alle Veränderungen der letzten 10 Tage enthalten. Deshalb wähle ich hier das inkrementelle Backup, zum besseren Verständnis habe ich hier alle Backup-Strategien so einfach wie möglich beschrieben.