Sonstiges
Backup mit netcat und dd
Ein Backup über das Netz mit Standardwerkzeugen ist auch sehr einfach (zwischen zwei Linux-Systemen).
Backup durchführen
-
zuerst muss der Rechner von einer BootCD, USB Stick gestartet werden, Knoppix eignet sich auch hier sehr gut. Oder man nimmt einfach die Live-CD des bevorzugten Linuxsystems
-
Jetzt muss die Netzwerkverbindung eingerichtet und konfiguriert werden, der Backup-Server muss erreichbar sein (ping-test).
-
Die IP-Adresse des Zielservers merkt oder schreibt man sich auf (ifconfig, ip a)
-
Auf dem Zielcomputer, also der Rechner, der das Backup aufnehmen soll, muss ein Listeningserver mit netcat gestartet werden:
nc -l 1234 | gzip -1 -c > ./mein-backup.img.tgz
-
Auf dem Client:
dd if=/dev/sda | nc -w 5 <backupserver> 1234
-
Das Backup läuft jetzt, leider gibts bei dieser Methode keine Fortschrittsanzeige. Je nach Plattengröße dauert das Backup ca. 30-60 Minuten.
Wiederherstellung durchführen
-
den wiederherzustellenden Client von einer LiveCD, BootCD, USB-Stick starten
-
Netzwerkkarte und IP-Adressen konfigurieren, die IP-Adresse merken, die wird gleich gebraucht.
-
Listenerservice starten:
nc -l 1234 | dd of=/dev/sda
-
Jetzt auf dem Rechner, wo das Image gespeichert ist, folgendes ausführen:
zcat ./mein-backup.img.tgz | nc <zielserver> 1234
-
Die Wiederherstellung läuft jetzt, auch hier gibts wieder keine Fortschrittsanzeige.
Server per Rsync über SSH clonen
Mit Rsync läßt sich ein Server mit einfachsten Mitteln über SSH in ein gemountetes Diskimage clonen. Das ist z.B. nützlich, wenn ein Server in eine VM migriert werden soll.
Es ist absolut empfehlenswert auf dem Quellserver alle nicht unbedingt benötigten Dienste, Dämonen und Programme zu beenden! Bis auf SSH und die Kernel-Prozesse läuft bei mir meistens nicht anderes mehr bevor ich den Vorgang starte.
Sollten irgendwelche Bind-Mounts innerhalb des Quellservers vorhanden sein, so sollten diese vorher unmounted werden, da die Daten sonst doppelt kopiert werden (den Bind-Mount gibts auf dem Zielsystem ja nicht).
rsync -av --delete-before -e ssh --exclude=/dev --exclude=/proc --exclude=/sys / root@ziel.domain.net:/xen/domains/dom1.server.de/loop/
loop/ ist z.B. ein gemountetes Diskimage.