Hetzner - DokuWiki

Backup

Inhaltsverzeichnis

Backup beantragen

  • Der Backup-Speicherplatz wird im Robot (https://www.hetzner.de/robot/) beantragt
  • Dort auf 'Support-Anfragen' klicken.
  • Auswahl 'Backup-Speicherplatz beantragen'

Nützliche Software

  • Backup mit Tartarus
    • "On-the-fly"-Sicherung auf FTP-Server
    • Unterstützung von LVM-Snapshots
    • Verschlüsselung (symmetrisch und asymmetrisch durch Schlüssel oder Passwort)
    • Inkrementelle Sicherungen
    • Basiert auf verbreiteten Unix-Tools, dadurch einfache Wiederherstellung auch aus dem Rettungssystem (tar, bzip2, etc.)
    • Konfiguration über Profildateien
    • Durch integrierte "Hooks" auch für Spezialfälle geeignet
    • Entfernung alter Sicherungen vom FTP-Server mit dem Hilfsprogramm charon
    • Tartarus Backup-Konfiguration mit kopierfertigen Beispielen und Anleitungen
  • Backup mit Hilfe von Backup2l/gpg/ftp
  • Duplicity -- GPG-verschlüsseltes, komprimiertes, inkrementelles Backup auf nicht-vertrauenswürdige Medien oder unverschlüsselte Protokolle wie das von Hetzner ausschließlich angebotene FTP zu den Backup-Servern. Kann außerdem auch noch rsync und ssh. Unter Debian (4.0) sollte es nicht mit apt-get install duplicity installiert werden, da die in Debian enthaltene veraltete Version (0.4.2) Probleme mit einigen FTP-Servern (Error 226: Transfer complete) macht. Stattdessen sollte die aktuelle Version (getestet mit 0.4.9) von http://download.savannah.gnu.org/releases/duplicity/ verwendet werden. Details siehe Hetzner-Forum.

Allgemeine Tips

Backups sollte man im Allgemeinen nachts durchführen, damit es keine Beinträchtigungen der Netzqualität für die Racknachbarn oder die selbst angebotenen Dienste gibt.

Bewährt hat sich ausserdem den Cronjob dazu auf "krumme" Uhrzeiten zu legen, also nicht um 0:00 oder 3:00 Uhr wenn viele Leute ihre Backups durchführen sondern z.B. um 1:42 oder 2:23 Uhr.

Das "schont" das Netz und den Backupserver und als angenehmer Nebeneffekt ist das Backup auch meist schneller fertig als zu den Stoßzeiten.

Eine sehr effiziente Backupstrategie mit rsync ist unter http://www.linux-magazin.de/Artikel/ausgabe/2004/09/backups/backups.html beschrieben.

Historisches Backup aller MySQL-Datenbanken in einzelne Dateien

Oft macht man nur einen Mysqldump über alle Datenbanken in einer Datei. Diese Datei wird dann oft gezippt, was Nachteile hat: Ein Byte im Zip-File futsch: Eventuell ganzes Backup futsch.

Außerdem entstehen oft Dateigrößen, die man nicht handeln will. Beim Wiedereinspielen muß man erst die relevanten daten in einer Riesendatenmenge isolieren. Die Zeit, den Platz hat man oft nicht.

Mein Backup-Skript wird jede Nacht von Cron (als root) angestoßen, geht durch alle Datenbanken einzeln, dumpt und gzippt die SQL-Dateien und legt jede Woche einen neuen Ordner an, sodaß man zum einen eine tägliche Sicherung und zum anderen eine wöchentliche, historische Sicherung hat:

Man legt dazu (zumindest bei Debian) folgende Datei in den Ordner /etc/cron.daily:

#!/bin/bash
echo "Alle MySQL-Datenbanken sichern:"
# Bereinigte Liste der Datenbanken erzeugen
# "geheim" ist das MySQL-Rootpasswort:
DBASELIST=`mktemp`
mysqlshow -pgeheim | awk '{print $2}' | grep -v Databases | sort >$DBASELIST
# Wohin sollen die ganzen Backups geschrieben werden?
cd /irgendeinverzeichnis
mkdir -p `date +%Y%m%W`
cd `date +%Y%m%W`
for x in `cat $DBASELIST`; do
    echo "Datenbank: $x sichern";
    mysqldump --opt -pgeheim $x >$x.sql;
done;
echo "Alte .gz-Dateien loeschen:"
rm *.gz
echo "Dateien zippen:"
gzip *

Speicherverbrauch bestimmen

Um herauszufinden wieviel Platz einem noch zur verfügung steht (sei es in Backupscripten oder Status-E-Mails) kann das Programm 'lftp' benutzt werden:

# apt-get install lftp

Speicherplatz bestimmen:

# echo du -s .  \
  | lftp -u USERNAME,PASSWORT BACKUPSERVER

Lesbarer wird es mit dem Parameter -h:

# echo du -hs . \
  | lftp -u USERNAME,PASSWORT BACKUPSERVER

Der Befehl lässt sich per Hook auch in Tartarus einbinden, indem folgende Zeilen in die Tartarus-Konfiguration eingefügt werden:

TARTARUS_POST_PROCESS_HOOK() {
 echo "du" | /usr/bin/lftp -u "$STORAGE_FTP_USER,$STORAGE_FTP_PASSWORD" "$STORAGE_FTP_SERVER" | awk -v LIMIT=50 '$2=="." {print ((LIMIT*1024*1024)-$1)/1024 " MiB backup space remaining"}'
}


© 2020. Hetzner Online GmbH. Alle Rechte vorbehalten.