dedlfix: 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.

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.)

dedlfix.