Backups auf FTP Server mit Tartarus
Auf einem neuen Server steht ein Backupserver bereit der nur über ftp erreichbar ist. Das normale Werkzeug der Wahl rsnapshot kann damit so nicht umgehen. Hetzner erwähnt ein Werkzeug namens tartarus das auch sonst an vielen Stellen positives Echo bekommt.
Dieses Dokumentation orientiert sich hauptsächlich an dieser Beschreibung.
Zuerst die Vorraussetzungen installieren
apt-get install curl bzip2
Dann die Quelle für tartarus bekannt machen und das Werkzeug selbst installieren.
vi /etc/apt/sources.list.d/tartarus.list deb http://wertarbyte.de/apt/ ./ curl http://wertarbyte.de/software-key.gpg | apt-key add - apt-get update apt-get install tartarus
Dann ein Konfigurationsverzeichnis erstellen und einen selbst gewählten Verschlüsselungskey in eine Datei schreiben (das brauche wir später) In dem Verzeichnis legen wir auch zwei Konfigurationsdateien an. Eine generische mit allgemeinen Parametern und eine Konfigurationsdatei für das eigentliche Backup
mkdir /etc/tartarus echo eingeheimerschlüssel > /etc/tartarus/backup.sec vi /etc/tartarus/generic.inc STORAGE_METHOD="FTP" STORAGE_FTP_SERVER="dein.backup.server" STORAGE_FTP_USER="user" STORAGE_FTP_PASSWORD="password" COMPRESSION_METHOD="bzip2" ENCRYPT_SYMMETRICALLY="yes" ENCRYPT_PASSPHRASE_FILE="/etc/tartarus/backup.sec" STAY_IN_FILESYSTEM="no" TARTARUS_POST_PROCESS_HOOK() { echo -n "$STORAGE_FTP_PASSWORD" | /usr/sbin/charon.ftp \ --host "$STORAGE_FTP_SERVER" \ --user "$STORAGE_FTP_USER" --readpassword \ --maxage 7 \ --dir "$STORAGE_FTP_DIR" --profile "$NAME" } TARTARUS_DEBUG_HOOK() { echo $DEBUGMSG | logger } vi /etc/tartarus/root.conf source /etc/tartarus/generic.inc NAME="root" DIRECTORY="/" EXCLUDE="/tmp/ /proc/ /sys/ /var/tmp/ /var/run/ /var/www" CREATE_LVM_SNAPSHOT="no" INCREMENTAL_TIMESTAMP_FILE="/var/spool/tartarus/timestamps/root" # /var/www wird separat gesichert
Für inkrementelle Backups brauche wir später noch dieses Verzeichnis.
mkdir -p /var/spool/tartarus/timestamps/
Und jetzt das erste Backup
tartarus /etc/tartarus/root.conf Executing TARTARUS_DEBUG_HOOK Checking for updates... Executing TARTARUS_DEBUG_HOOK done Executing TARTARUS_DEBUG_HOOK syncing... Executing TARTARUS_DEBUG_HOOK Beginning backup run... gpg: directory `/root/.gnupg' created Executing TARTARUS_DEBUG_HOOK Uploading backup to ftp://u58071.your-backup.de///tartarus-root-20121211-1230.tar.bz2.gpg... gpg: new configuration file `/root/.gnupg/gpg.conf' created gpg: WARNING: options in `/root/.gnupg/gpg.conf' are not yet active during this run gpg: keyring `/root/.gnupg/pubring.gpg' created
Und so kann man es dann wieder auspacken (hier in ein tmp Verzeichnis)
curl ftp://user:password@dein.ftp.server./tartarus-root-20121211-1230.tar.bz2.gpg | gpg --decrypt | tar xpvj -C /tmp/restore
(hier braucht man auch den key den man oben in die backup.sec Datei geschrieben hat)
Jetzt fehlt noch die Automatisierung mittels cron und verschiedene Konfiguration für wöchentliche Systemsicherungen und tägliche Datensicherungen