Entwicklungsumgebung/Backup
Diese Seite ist momentan eine Baustelle im Zustand: 1
-
0
-
1
-
2
-
3
-
4
Regelmäßige Datensicherung in mehreren Generationen
Für die Datensicherung in mehreren Generationen bieten sich Tools an, die auf rsync basieren. Durch das Setzen von Hardlinks anstelle von Dateikopien werden damit beliebig viele Backup-Generationen der Dateien platzsparend möglich - nur begrenzt durch den zur Verfügung stehenden Speicherplatz.
Die Sicherung erfolgt in ein frei zu wählendes Verzeichnis des Servers - jedes beschreibare Medium das sich mounten lässt kann also als Speicherort verwendet werden u.a. USB-Festplatten, interne Festplatten oder Freigaben auf anderen Rechnern (z.B. ein Backupserver.
Rsnapshot basiert u.a. auf rsync und wird von Debian unterstützt.
Installation
Die Installation erfolgt mit
aptitude install rsnapshot rsync
Ebenfalls benötigt wird das Modul liblchown-perl, das aktuell nicht in der stable-Version von Debian enthalten ist.
Das Paket kann hier heruntergeladen werden und wird installiert mit
dpkg -i liblchown-perl_1.00-1_i386.deb
oder:
aptitude install dh-make-perl dh-make-perl --build --cpan lchown dpkg -i liblchown-perl*.deb
Wenn die Datei mit Lynx direkt auf dem Server heruntergeladen wird, kann auch die Option installieren gewählt werden - dann entfällt der letzte Schritt.
Einrichtung
Zunächst wird der Speicherort für die Backups festgelegt. In der Regel handelt es sich um einen Datenträger der in ein Verzeichnis des Servers gemountet wird, hier in das Verzeichnis /backup/ z.B. mit dem Befehl
mount /dev/sdxx /backup/
wobei das Verzeichnis /backup vorher angelegt werden muss mit mkdir /backup.
Die Steuerung von Rsnapshot erfolgt in der Datei /etc/rsnapshot.conf. Nach dem üblichen Anlegen einer Sicherheitskopie kann die Datei bearbeitet werden mit:
mcedit /etc/rsnapshot.conf
Dabei ist zu beachten, dass immer ein Tabulator als Trenner verwendet werden muss! Als erstes wird das Backupverzeichnis durch die Variable rsnapshot_root festgelegt
rsnapshot_root /backup/
Die gesicherten Dateien befinden in sich also zukünftig im Verzeichnis /mnt/backup/rsnapshot/. Wenn das Verzeichnis nicht existiert, legt rsnapshot es beim ersten Durchlauf an. Wenn man auf ein Wechselmedium sichert ist dieses Verhalten eventuell nicht erwünscht. Vielmehr sollte hier das Programm mit einer Fehlermeldung abbrechen, wenn kein Medium gemountet ist. Dafür gibt es den Schalter
no_create_root 1
Standardmäßig ist er deaktiviert, also die Raute # entfernen und rsnapshot legt kein Verzeichnis an.
Sicherungsintervalle
Als nächstes werden die Backupintervalle (wie lange die Sicherungen aufbewahrt werden) festgelegt. Es können stündliche, tägliche, wöchentliche und monatliche Intervalle eingestellt werden:
#interval hourly 6 interval daily 7 interval weekly 4 interval monthly 6
Im Beispiel werden tägliche Backups für 7 Tage, wöchentliche Backups für 4 Wochen und monatliche Backups für 6 Monate aufbewahrt. Stündliche Backups sind auskommentiert, werden also nicht durchgeführt - machen bei einem Schulserver auch nicht unbedingt Sinn. Die Reihenfolge der Intervalle ist unbedingt einzuhalten.
Zu sichernde Verzeichnisse
Die Verzeichnisse die gesichert werden sollen werden wie folgt angegeben:
# LOCALHOST backup /home/ localhost/ backup /etc/ localhost/ backup /usr/ localhost/ backup /var/ localhost/ backup /bin/ localhost/ backup /boot/ localhost/ backup /lib/ localhost/ backup /root/ localhost/ backup /sbin/ localhost/
localhost bezeichnet den zu sichernden Server, im Beispiel wird eine annähernde Komplettsicherung des Servers erstellt. Mit
rsnapshot configtest
kann die Konfiguration getestet werden.
Ein erster Backuplauf kann mit dem kleinsten aktivierten Intervall angestoßen werden, in unserem Beispiel also:
rsnapshot daily
Es muss mit dem kleinsten Intervall begonnen werden, danach kann das nächstgrößere Intervall ebenfalls manuell gestartet werden. Treten Probleme auf so kann der Debuglevel z.B. auf 5 heraufgesetzt werden, voreingestellt ist Level 3.
Regelmäßige Sicherungen
Mit einem Cronjob werden die Backups zeitlich gesteuert. Mit crontab -e den editor aufrufen und z.B. folgende Zeilen ergänzen:
0 1 * * * /usr/bin/rsnapshot daily 0 3 * * 7 /usr/bin/rsnapshot weekly 0 5 1 * * /usr/bin/rsnapshot monthly
Täglich um 1 Uhr, wöchentlich jeden Sonntag um 3 Uhr und monatlich an jedem 1. um 5 Uhr wird ein Backup angelegt.
Sichern auf einen Backupserver (entfernter Rechner)
Hierzu muss auf beiden Servern NFS eingerichtet sein s.Link-Text Auf dem Backupserver wird das Backupverzeichnis in die Datei /etc/exports eingetragen
/backup/delixs delixs(rw,sync,no_root_squash)
Die Sicherungen landen auf dem Backupserver im Verzeichnis /backup/delixs, gesichert wird der Server mit dem Namen delixs - hier kann auch die IP-Adresse stehen. Mit
service nfs-kernel-server restart
wird der NFS-Server neu gestartet und gibt die exportierten Verzeichnisse an der Konsole aus.
Auf delixs muss das exportierte Verzeichnis noch gemountet werden. Dafür wird das Verzeichnis /home/backup angelegt und anschließend mit dem Befehl eingebunden:
mount -t nfs delixs:/backup/delixs /home/backup
Um das Backupverzeichnis dauerhaft einzubinden ist ein entsprechender Eintrag in der Datei /etc/fstab nötig - im Beispiel hat der Backupserver die IP 192.168.1.5:
192.168.1.5:/backup/delixs /home/backup nfs auto,defaults 0 0
Reinhold Dorn 2009