Hetzner - DokuWiki

Backup


Inhaltsverzeichnis

Nützliche Software

  • Backup mit Tartarus
    • "On-the-fly"-Sicherung auf FTP-Server
    • Unterstützung von LVM-Snapshots
    • Verschlüsselung
    • Inkrementelle Sicherungen
    • Basiert auf verbreiteten Unix-Tools, dadurch einfache Wiederherstellung auch aus dem Rettungssystem (tar, bzip2, etc.)
    • Entfernung alter Sicherungen vom FTP-Server mit dem Hilfsprogramm charon
  • 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.
  • Ein Duplicity Script

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 *

Hetzner Backupspace - Speicherverbrauch bestimmen

Um herauszufinden wieviel Platz einem noch zur verfügung steht (sei es in Backupscripten oder Status-Emails) 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


© 2019. Hetzner Online GmbH. Alle Rechte vorbehalten.