Cronjob zum Erstellen eines Disk-Image von Ubuntu Server 12.04 auf einer externen USB-Festplatte

Cronjob zum Erstellen eines Disk-Image von Ubuntu Server 12.04 auf einer externen USB-Festplatte

Ich habe eine externe 1-TB-Festplatte und möchte regelmäßig (vielleicht einmal pro Woche) einen Snapshot des gesamten Servers erstellen. Für den Cronjob-Teil plane ich, auf ein Bash-Skript in folgendem Verzeichnis zu verweisen:

$ sudo crontab -e

aber ich habe keine Ahnung, mit welchem ​​Tool ich ein Disk-Image des laufenden Servers erstellen könnte. Muss der Server während der Erstellung des Images offline sein? Ich habe mir Clonezilla angesehen, aber es sieht so aus, als müsste ich zuerst einen DRBL-Server einrichten, was ich anscheinend nicht will.

Ich weiß auch nicht, wie lange es dauern könnte, ein Backup auszuführen, oder ob es eine Möglichkeit gibt, nur inkrementelle Änderungen vorzunehmen. Ich plane, dort ca. 500 GB Daten zu speichern.

Muss ich die externe Festplatte auf eine bestimmte Weise formatieren? Kennt jemand gute Tutorials/Anlaufstellen?

Dank im Voraus.

Antwort1

Sie können rsync verwenden, um eine Kopie des gesamten Systems zu erstellen. Es handelt sich dabei nicht um ein „Image“ im eigentlichen Sinn, aber es enthält eine Kopie aller Dateien auf dem System. Sie könnten beispielsweise Folgendes tun:

rsync -aHAXxv / /mnt/backup/

Dadurch wird alles im Stammdateisystem nach /mnt/backup kopiert. (Beachten Sie, dass aufgrund von -x nur ein Dateisystem kopiert wird. Wenn Sie also mehrere Dateisysteme haben, müssen Sie mehrere Befehle ausführen oder -x weglassen und --exclude verwenden, um den Sicherungspfad auszuschließen.)

Antwort2

Versuchen Sie fsarchiverhttp://www.fsarchiver.org/QuickStart Damit können Sie Live-Backups von Partitionen und mehrfädige Image-Komprimierung erstellen. Leider sind inkrementelle Backups damit etwas schwierig. Vielleicht mit rsync auf dem DD-Image der Partition? Erwägen Sie die Erstellung eines komprimierten Partitionsimages und vielleicht ein inkrementelles Backup einiger Ordner mit rsync/bacula.

Antwort3

Vielleicht ist es besser, darüber nachzudenken, was Sie sichern. Das Erstellen eines Disk-Images würde einen gewissen Trick erfordern, um zu verhindern, dass es durch das laufende System beschädigt wird. Mir fallen da zwei Möglichkeiten ein:

  • eine Art Pre-Mount-Black-Magie, die beim Booten ein Image erstellt (klingt schwierig) und dann beim Neustart einen Cron ausführt
  • Betreiben Sie den Server unter einer Art Hypervisor und verwenden Sie vom Host kontrollierte Snapshots

Die anderen Optionen sind, Ihre erstellten Daten und Konfigurationen zu sichern und die „Betriebssystem-Bits“ bei einer Neuinstallation neu zu erstellen. Vielleicht können Sie die Installation sogar für eine superschnelle Notfallwiederherstellung skripten. Dadurch sparen Sie auch viele Gigabyte an Backup-Speicherplatz – das heißt, Sie können häufiger Backups erstellen und die Daten länger aufbewahren.

Antwort4

Wie von @yesterday erwähnt, können Sie rsync wie folgt verwenden:

rsync -aHAXxv / /mnt/backup/

Dadurch wird eine Sicherung erstellt, /jedoch nicht von anderen gemounteten Partitionen. /var Sie sollten dies also für jede Partition tun, die Sie sichern müssen.

Um jedoch sicherzustellen, dass Sie ein konsistentes Backup haben, sollten Sie, sofern verfügbar, LVM-Snapshots verwenden. Beispiel:

# create snapshots
lvcreate -s vg0/root -n root_snapshot -L2G
lvcreate -s vg0/var  -n var_snapshot  -L2G
# mount snapshots to make a copy
mount /dev/vg0/root_snapshot /mnt/snapshot
mount /dev/vg0/var_snapshot  /mnt/snapshot/var
# backup all files (no need for -x here)
rsync -aHAXv /mnt/snapshot/  /mnt/backup/
# unmount the snapshots
umount /mnt/snapshot/var /mnt/snapshot
# remove the snapshots
lvremove vg0/root_snapshot
lvremove vg0/var_snapshot

verwandte Informationen