Natürlich möchte man nicht, dass alle Daten, ob Mails, Webseiten, SQL-Dumps oder Konfigurationsdateien einfach so offen liegen.
Des weiteren muss man natürlich auch regelmäßig Backups machen, damit diese was nützen. Dabei sollten diese aber wenig Platz verbrauchen. Meist hat man nur recht geringen Platz zur Verfügung (30 bis 50 GB sind so der Durchschnitt bei den meisten Anbietern nach meinen Erfahrungen).
Alle beiden Dinge kann man relativ simpel lösen: Duplicity!
Duplicity ist ein Programm, dass verschlüsselte, inkrementielle Backups erstellen und diese dann zum Beispiel auf FTP-Servern speichern kann. Duplicity ist im Debian-Repository (und auch in (K)Ubuntu) enthalten und kann einfach installiert werden:
sudo aptitude install gpg
sudo aptitude install duplicity
FTP_PASSWORD=secret duplicity /home/exampleuser ftp://backupuser@backup.example.com/subdirectory
Mit dem Parameter
--exclude kann man Verzeichnisse vom Backup ausschließen. Backups wiederherstellen geht auch relativ simpel:
FTP_PASSWORD=secret duplicity ftp://backupuser@backup.example.com/ /home/exampleuser
debianserver:/home/exampleuser# gpg --gen-key
gpg --list-keygibt eine Liste der Schlüssel aus. Da sollte der gerade angelegte mit den richtigen Daten dabei sein.
So, nun können wir uns ein kleines Skript schreiben, das den eigentlichen Aufruf von duplicity übernimmt:
#!/bin/bash
export PASSPHRASE=secret
export FTP_PASSWORD=ftpsecret
duplicity --encrypt-key "9D6F907C" --sign-key "9D6F907C" \
--exclude /proc \
--exclude /dev \
--exclude /sys \
--exclude /swap \
/ ftp://user@backup-server.de/
Auch sollte man sich überlegen, welche Verzeichnisse man genau ausklammern will und entsprechende Zeilen hinzufügen.
In diesem Beispiel wird die komplette Verzeichnisstruktur bis auf die paar mit exclude ausgenommenen Verzeichnisse gesichert (dafür ist das / in der letzten Zeile verantwortlich). Ob man wirklich so umfangreiche Sicherungen will, ist je nach Situation unterschiedlich. Darüber sollte man durchaus erstmal nachdenken und das Für und Wider einer großen, allgemeinen zu einer kleinen, speziellen Sicherung abwägen.
Wer will, kann sich das Ergebnis immer per Mail zuschicken lassen (dazu einfach
| mail -s "duplicity backup" root@pumuckl-fanclub.de hinten dran anhängen). Wer sich aber Ergebnisse von Cron-Jobs eh per Mail zuschicken lässt (MAILTO-Anweisung in der crontab) kann darauf verzichten, da er diese Ergebnisse sowieso bekommt.
Als letzten Schritt speichert man obiges Skript z.B. unter /usr/local/bin/ftpbackup und macht dies mit
chmod +x /usr/local/bin/ftpbackup ausführbar. Dann editiert man mit
crontab -e die Crontab von root (vorher evtl. mit sudo su auf root wecheln). Das Skript muss als root laufen, wenn wie im obigen Beispiel die gesamte Verzeichnisstruktur gesichert werden soll. Soll nur z.B. ein Homeverzeichnis eines bestimmten Benutzers gesichert werden, reicht es auch aus, den Aufruf in die crontab dieses Nutzers einzutragen.
Wie dem auch sei, man trägt eine Zeile für das Backup ein:
27 5 * * * /usr/local/bin/ftpbackup
Das sollte reichen. Jetzt startet man am besten erstmal manuell ein Backup, da das erste ja ein Full Backup wird und somit relativ lange dauern dürfte. In Zukunft kommen dann inkrementielle Backups hinzu.
Noch ein Tipp:
Mit folgender Zeile kann man sich den Restplatz auf dem FTP-Backup-Server anzeigen lassen (allerdings ist dieser Tipp nicht auf meinen Mist gewachsen, sondern das habe ich irgendwo aufgeschnappt, weiß aber leider die Quelle nicht mehr. Dennoch ein Dank an dieser Stelle an Unbekannt dafür
echo du . | lftp -u FTPUSER,FTPPASSWORT FTPSERVER | awk -v LIMIT="50" '$1~/[0-9]+/ {QUOTA=LIMIT*1024*1024; print (QUOTA-$1)/1024/1024 " GB left"}'
Kommentare
Kommentar schreiben