Contabo KundenserviceTutorialsLinux (Debian/Ubuntu): Backup

Linux (Debian/Ubuntu): Backup

Hier beschreibe ich, wie Sie ein einfaches Backup Ihres kompletten Dateisystems erstellen und im Problemfall wiederherstellen können. Voraussetzung ist ein Linux-System mit root-Zugriff. Ob Dedicated Server oder VPS spielt keine Rolle.

Wichtig: Die aufgezeigten Befehle wurden unter Ubuntu 14.04 (64 Bit) getestet und sollten bei Debian genauso funktionieren. Bei anderen Distributionen wie CentOS muss der eine oder andere Befehl angepasst werden.

  1. Backup erstellenWir verwenden tar mit gzip-Kompression um den Inhalt der Systempartition zu archivieren. Spezielle Verzeichnisse werden ignoriert. In ihnen befinden sich keine relevanten Daten. Auch das MySQL-Verzeichnis wird nicht gesichert, aber dazu später mehr.Wir erstellen das Backup in einem separaten Verzeichnis, das ebenfalls ausgeschlossen wird. In diesem Beispiel zeige ich, wie der Contabo Backup-Speicherplatz via FTP genutzt wird.
    apt-get install curlftpfs
    curlftpfs USERNAME:[email protected] /mnt
    cd /mnt
    tar czf rootfs_backup.tar.gz --directory=/ --exclude=dev/* --exclude=proc/* --exclude=run/* --exclude=sys/* --exclude=tmp/* --exclude=var/lib/mysql/* --exclude=mnt/* .

    Das Backup kann auch temporär auf der lokalen Festplatte des Servers erstellt werden solange das Verzeichnis, in dem das Archiv erstellt wird, vom Backup ausgenommen ist. Es ist dennoch sehr empfehlenswert, das Archiv an einem anderen Ort zu sichern.

    Wir haben nun ein Abbild der kompletten Systempartition. Dieses Abbild kann verwendet werden, um den Server in seinem aktuellen Zustand jederzeit wiederherzustellen.

  2. Backup wiederherstellen Wir starten den Server in das Rettungssystem und loggen uns per SSH ein. Es ist wichtig, die passende Version auszuwählen, denn sonst schlägt das chroot-Kommando fehl. In der Regel stimmt 64 Bit. Für dieses Beispiel nehmen wir eine komplett leere Festplatte. Wir brauchen also zunächst eine neue Systempartition und gegebenenfalls noch eine Swap-Partition. Die Partition mit parted anlegen:
    parted /dev/vda mklabel msdos
    parted /dev/vda 'mkpart primary 1 -1'
    parted /dev/vda set 1 boot on
    mkfs.ext4 /dev/vda1

    Jetzt können wir die neu erstelle Systempartition und den Backup-Speicher einbinden:

    mount /dev/vda1 /mnt/custom
    curlftpfs USERNAME:[email protected] /mnt/backup

    Und zur eigentliche Wiederherstellung:

    cd /mnt/custom
    tar xzf /mnt/backup/rootfs_backup.tar.gz

    Nachdem das Archiv entpackt wurde, sind noch ein paar Anpassungen nötig, damit das System wieder boot-fähig wird. Dazu wechseln wir per chroot die Arbeitsumgebung:

    mount -o bind /dev /mnt/custom/dev
    mount -o bind /sys /mnt/custom/sys
    mount -t proc /proc /mnt/custom/proc
    chroot /mnt/custom /bin/bash

    Das System verwendet UUIDs, um Partitionen eindeutig zu identifizieren. Da wir eine neue Partition erstellt haben, müssen wir die neue UUID hinterlegen. Die finden wir mit diesem Kommando heraus:

    blkid

    Wir bearbeiten die /etc/fstab mit einem Texteditor, z.B. nano, und ersetzen die alte UUID durch die neue. Dann lassen wir eine neue GRUB-Konfiguration automatisch erstellen und installieren GRUB in den MBR:

    grub-mkconfig > /boot/grub/grub.cfg
    grub-install /dev/vda

    Wir verlassen die chroot-Umgebung mit exit und schließlich das Rettungssystem mit exitrescue. Nach einem Reboot sollte der Server wieder mit dem Stand des Backups laufen.

  3. Sonderfall MySQLMySQL-Datenbanken können nicht fehlerfrei direkt aus dem Verzeichnis gesichert werden während der MySQL-Server läuft. Hier kommt stattdessen mysqldump zum Einsatz:

    mysqldump -p --all-databases > db_backup.sql

    Das Kommando sollte vor dem Erstellen des Backup-Archivs ausgeführt werden, damit die SQL-Datei im Archiv enthalten ist. Mit diesen Befehlen wird die Datenbank wiederhergestellt sobald der Server wieder regulär läuft:

    mysql_install_db
    service mysql start
    mysql < db_backup.sql
    service mysql restart

Wie Sie sehen genügen ein paar Befehle, um nicht nur die wichtigsten persönlichen Daten, sondern das komplette Dateisystem inklusive aller Einstellungen zu sichern. Regelmäßig durchgeführt schützt ein funktionierendes Backup vor längeren Ausfallzeiten und - noch viel wichtiger - vor Datenverlust.

Denken Sie daran: Daten ohne Backup sind unwichtige Daten!

Contabo KundenserviceTutorialsLinux (Debian/Ubuntu): Backup