Linux Backup Teil 3: Eleganteres Sichern mit eigenem Skript

In den vorherigen Backup-Artikeln mit cp, rsync und Hardlinks habe ich Daten gesichert und eine kleine Historie erzeugt. Um es komfortabler zu gestalten, mache ich daraus jetzt ein kleines Skript unter Benutzung der String-Operationen und dem automatischen Löschen von Dateien.

Zuerst erzeuge ich eine Datei namens backup.sh ….

… und fülle diese mit folgendem Inhalt:

Was passiert in diesem Skript.
Zuerst werden 2 Variablen definiert.
Die erste Variable enthält die Anzahl von Backuphistorien, welche ich behalten möchte. In diesem Fall möchte ich 12 Backups behalten. Das bedeutet ich behalte 11 alte Backups und erzeuge ein neues. Die anzugebende Anzahl ist hier demnach 12-1 = 11.
Die zweite Variable beinhaltet das heute Datum, welches das Format „JahrMonatTag-StundenMinutenSekunden“ erhält.
Der rsync-Befehl ist die erste Aktion.
Hier werden die Dateien aus dem Quellverzeichnis „/daten“ mit dem Zielverzeichnis „/backup/orig“ abgeglichen.
Ist dieser Vorgang abgeschlossen, werden die, mit Hardlinks erzeugten, Backup-Verzeichnisse unter „/backup/save“ auf die Anzahl der gewünschten Backups reduziert. Hier werden also alle Verzeichniss aufgelistet und die neuesten 11 mit dem Tail-Befehl unterdrückt. Jedes weitere Verzeichnis wird dann mit dem xarg-Befehl gelöscht.
Jetzt wird das aktuelle „Hardlink-Backup“-Verzeichnis mit dem heutigem Datum erzeugt und mit dem cp-Befehl die aktuellen Dateien aus dem „/backup/orig“ Verzeichniss hierhin mit Hardlinks versehen.

Ich habe in diesem Fall also 12 Backup´s lang die Chance, eine versehentlich gelöschte Datei wieder herzustellen.

ABER ACHTUNG !!!
Da es sich bei Hardlinks eben nur um Verweise auf EINE Datei handelt, wirkt sich eine Beschädigung der Datei auf jedes „Backup“ aus.
Diese Art und Weise eine Backuphistorie zu erzeugen schützt also NICHT die Daten selber vor einer Zerstörung auf dem Backuplaufwerk.
Um wirklich ein relativ sicheres Backup zu haben, sollten deshalb immer mindestens 2 Backupdatenträger im Wechsel verwendet werden – und je nach Stand der persönlichen Paranoia, gerne auch ein paar mehr 😉

Man könnte jetzt im nächsten Schritt die externe Festplatte automatisch erkennen lassen und fest einem Mount-Verzeichnis zuweisen (z.B.: hier beschrieben).
Auch könnte man mit dem Anstecken des Laufwerks auch gleich das Backup anstoßen – allerdings würde man dadurch auch sofort beginnen die Daten im „/backup/orig“-Verzeichnis zu überschreiben. Möchte man nur Daten wiederherstellen, wird es kurz hektisch um die aktuelle Prozess-id zu finden und zu killen. Man kann also gerne selber entscheiden, was der praktikable Weg für einen selber ist.
Ich mag Automatismen, aber nicht in jedem Fall.

Es gibt noch eine weitere Frage, die ich mir an dieser Stelle gefallen lassen muss: Warum der Aufstand, wenn es Tools/Befehle (z.B.: rsnapshot) und Backupsoftware (z.B.: Bacula, BackupPC) gibt?
Ich habe nichts dagegen. Ich bin nur einfach der Meinung, dass man sowas durchaus mal „händisch“ machen sollte, um einfach besser mit der Materie vertraut zu sein.
Und je besser ich weiß was ich will und wie es funktionieren könnte, umso besser verstehe ich dann auch die Abläufe in Programme/Tools/Befehle.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

zwei × zwei =