Serverbackup per ftplicity und duplicity [Debian/ Ubuntu]
Nach dem ich mich jetzt über einen sehr langen Zeitraum davor gedrückt habe, ein vollständiges Backup meines Servers zu machen und dieses in Zukunft zu automatisieren, war es dann heute so weit…
* Verbrauchte Zeit (Installation/ Konfiguration): 2h
* Wutausbrüche (leicht): 1er
* Tassen Kaffee: 4
* graue Haare: ca. 20
Es gibt zu dem Thema (wie so oft) schon einige HowTo’s im Web. Ich habe mich bei den folgenden Links orientiert:
* http://www.heise.de/security/artikel/78816
* http://daniel.omschallom.com/2007/03/17/ftplicity-howto/
* http://lug.zhwin.ch/wiki/index.php/GPG_Tutorial
* http://www.debianhowto.de/doku.php/de:howtos:sarge:backup_ftplicity
Bei ftplicity handelt es sich um ein kleines Script, welches den Umgang mit duplicity vereinfacht. Der Verlag heise.de stellt es zum kostenlosen download bereit (zu erreichen über den obigen Link).
Ich verwende momentan ein Debian-System mit Version (nicht mehr ganz jung) 2.4.32. Nachdem ich seit Ewigkeiten meinen Server schon nicht mehr per ssh besucht habe, war ein update der Paketverwaltung notwendig:
apt-get update
Nun funktionierte auch sogleich die Installation von duplicity mit apt-get install duplicity
Ironischer Weise hatte ich garkein ftp installiert (was mir durch eine spätere Fehlermeldung aufgefallen ist). Es empfielt sich also, zu prüfen ob ftp auf dem System vorhanden ist und gegebenfalls mit apt-get install ftp nachzuinstallieren (+5 graue Haare).
Um das Script nutzen zu können, muss man es downloaden:
wget ftp://ftp.heise.de/pub/ct/listings/0613-216.tar.gz
und entpacken:
tar -xvzf 0613-216.tar.gz
cd ftplicity-1.1.1/
cp ftplicity /usr/local/bin
Jetzt sollte man die Nutzerrechte entsprechend setzen, mit chmod 755 /usr/local/bin/ftplicity.
Bevor es an dieser Stelle weiter geht, barucht man noch einen GPG-Schlüssel, den man sich folgendermaßen erstellt:
Mit dem Befehl gpg –gen-key startet man die Erstellung des Schlüssels (ähnlich wie ssh-keygen. Bei den Fragen die man gestellt bekommt, empfiehlt es sich, die Default-Werte beizubehalten und dann seinen Namen und die Emailadresse einzugeben.
Juhu… bisher läuft alles super und es geht weiter bei der Konfiguration von ftplicity unter $home/.ftpclicity/conf, die automatisch erstellt wird, wenn man ftplicitiy backup das erste mal startet:
# Daten fuer GPG-Schluessel
GPG_KEY=_KEY_ID_ #hier kommt die gpg-id rein (siehe unten…)
GPG_PW=’_GPG_PASSWORT_’# Zugangsdaten fuer FTP-Server (URL-Format)
ZIEL=’ftp://_USER_@_SERVER_/_VERZEICHNIS_/’
ZIEL_PW=’_FTP_PASSWORT_’
# Basisverzeichnis fuers Backup
QUELLE=’/’
# aeltester Wiederherstellungszeitpunkt
HOECHSTALTER=1M
# Ausfuehrlichkeit der Bildschirmausgaben (9 fuer Fehlersuche)
VERBOSITY=4
# Verzeichnis fuer temporaere Dateien. Beim Restore muss dort
# mindestens Patz fuer die groesste Datei im Backup sein
TEMP_DIR=/tmp
Bei der GPG-ID sollte man wissen, wie man diese bekommt (ich wusste es anfänglich nicht, da die Ausgabe der GPG-Key Erstellung schon nicht mehr auf meinem Terminal angezeigt wurde (+ 5 graue Haare)).
Mit gpg –list-keys bekommen wir die ID und bei den Zeichen nach dem slash “/” bis zum blank handelt es sich um die Zeichenkette, die in der conf eingetragen werden muss.
Alle anderen geforderten Werte in der conf sollten sich von selber erklären. (Jetzt kommt jedoch der Teil, der mich alt gemacht hat
)
Mit dem Befehl ftplicity update, sollte nun ein Backup erstellt werden und auf meinen Backupserver per ftp übertragen werden…. doch Fehlermeldungen (die ich Aufgrund ihrer Länge hier nicht poste)!!!
Zu beachten ist (wenn man es denn weis), dass auf dem FTP-Server ein Verzeichnis /tmp vorhanden sein muss (gut das ist noch verständlich, da es ja in der conf steht). Weiter muss (zumindest bei meinem backupserver ein Verzeichnis angelegt werden, in dem dann das Backup gespeichert werden soll. Unter / funktionierte es leider nicht. Dieses Verzeichnis kommt ebenfalls in die conf hinder/ an die URL zum ftp.
Jetzt gab es jedoch immernoch einen Fehler… (+ 10 graue Haare):
In dem Verzeichnis (warum auch immer) muss unbedingt eine Datei liegen… //Darauf muss man jedoch erstmal kommen//
Lohn der Mühen: mit einem erneuten ftplicity update wurde ich diesmal mit einem vollständigem Backup meines Servers belohnt :-).
Wichtig: Natürlich sollte man auf jeden Fall das Verzeichnis .gnupg auf einen localen Rechner kopieren und vor fremden Zugriffen schützen!!!
Fertig!!!
Automatische Backups erstellen
Hier bietet sich cron an:
# ftplicity monatliches komplett-backup
0 6 1 * * root test -x /usr/local/bin/ftplicity && /usr/local/bin/ftplicity full && /usr/local/bin/ftplicity purge –force >/dev/null
Wietere Befehle von ftplicity
Usage: ftplicity [ ...]Kommandos:
backup: inkrementelles Backup
full: vollstaendiges Backup erzwingen
list: Dateien im Backup auflisten
verify: Backup pruefen und Aenderungen anzeigen
purge [--force]:
veraltete Backup-Archive anzeigen [und loeschen]
cleanup [--force]:
Backup-Verzeichnis aufraeumen (nach Programmabbruch)
restore []:
Backup nach restaurieren [vom Stand ]
fetch []
Datei/Verzeichnis einzeln restaurieren (siehe Beispiel)
Beispiele:
Veraltete Backup-Archive anzeigen und loeschen:
ftplicity purge –force
Vollstaendiges Backup nach /mnt zurueckspielen:
ftplicity restore /mnt
Datei /etc/passwd nach /root/pw restaurieren, Stand vor 4 Tagen:
ftplicity fetch etc/passwd /root/pw 4D
(siehe “man duplicity”, Abschnitt TIME FORMATS)
Dateien in /root/.ftplicity
conf Haupt-Konfigurationsdatei
pre wird vor einem Backup ausgefuehrt
post wird nach einem Backup ausgefuehrt
gpgkey enthaelt exportierten GPG-Schluessel
exclude Liste ausgeschlossener Dateien und Verzeichnisse
(siehe “man duplicity”, Abschnitt FILE SELECTION)
Leave a Reply
You must be logged in to post a comment.