Gunther: Backup-Strategie

Beitrag lesen

Tach!

Wie mache ich denn am besten eine (möglichst) komplette System-Sicherung unter Linux?

Platte kopieren, oder cp -a auf Dateiebene.

Falls es hilft - es handelt sich dabei um einen vServer mit KVM.

Dann ist die Frage, wie du nach einem Defekt wieder zu einem zugreifbaren System kommst. Du wirst da wohl den Hostermechanismus nehmen müssen, der einen neuen Server mit irgendeiner Grundkonfiguration aufsetzt. Das heißt, dass dir eine System-Kopie nichts nützt, weil du kein Rescue-System zum Beispiel von USB starten kannst, um die Platten im Ruhezustand zu beschreiben.

Jede Eigensicherung kann sich dann nur auf die Teile konzentrieren, die du im laufenden Betrieb einer Grundkonfiguration hinzufügen/ändern kannst, also alles das, was du nach der Übergabe an dich an Änderungen vorgenommen hast.

Ja, das leuchtet mir soweit ein. Ich kann, im Falle eines Falles wahlweise ein sog. "Rettungssystem" booten oder auch wieder das Image installieren, mit welchem ich begonnen habe.

Neben etlichen neuen Paketen, die ich installiert habe, und den diversen Konfigurationsdateien, die entsprechend angepasst wurden, besteht meine Serververwaltung noch aus einer MySQL DB, die ich aber ja sowieso schon zusammen mit den anderen sichere/ gesichert habe.

Um Platz zu sparen würde ich ebenfalls rdiff-backup verwenden und die Verzeichnisse mit den Webs und Mails ausnehmen.

Funktioniert das dann, wenn ich nach einem Crash erst das Ursprungs-Image wieder installiere und anschließend mein(e) Backup(s) restore? Oder "fehlen" dann ggf. doch noch irgendwelche Sachen/ Dateien?

Da ich bis jetzt selber noch nie etwas mit Batch-Skripten zu tun hatte, das also völliges Neuland für mich ist, hier mal ein Skript, welches ich gefunden habe -> Shell Script To Backup MySql Database Server
Wäre das als Ausgangspunkt brauchbar?

Sieht erstmal brauchbar aus, aber diese whois-Anweisungen sehen sinnlos aus:
MYSQL="$(which mysql)"
Wenn which den Pfad zur ausführbaren Datei findet, wozu es üblicherweise den PATH abklappert, dann findet ein einfacher Aufruf von mysql dieselbe Datei, weil dabei ebenfalls der PATH abgesucht wird. Das Problem ist jedoch, dass beim Starten von Cronjobs oftmals nicht der übliche PATH gesetzt ist, wie man ihn in einer normalen Anmelde-Shell vorfindet, weswegen ein einfaches mysql nicht zu /usr/bin/mysql aufgelöst werden kann. Und which kann das dann auch nicht. Zumal auch noch zuerst which aufgelöst werden muss.

Wenn du Scripts maßgeschneidert und ohne großartige Rücksicht auf Wiederverwendbarkeit anderswo schreiben willst, dann schreib lieber gleich den richtigen Pfad MYSQL=/usr/bin/mysql. Um den vollständigen Dateinamen zu ermitteln kannst du ja which zu Fuß am Prompt aufrufen. (Für Kompatibilität gäbe es zum Beispiel das oftmals in Shebang-Zeilen genutzte /usr/bin/env.)

OK! Und ja, liegt in /usr/bin/mysql.

Gruß Gunther