Entwicklungsumgebung/Backup
Diese Seite sollte nochmals überarbeitet werden. Eine Begründung befindet sich in der Regel unter Diskussion (oben). |
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
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 /mnt/backup/ z.B. mit dem Befehl
mount /dev/sdxx /mnt/backup/
wobei das Verzeichnis /backup vorher angelegt werden muss mit mkdir /mnt/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 /mnt/backup/rsnapshot/
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:
rsnapshot daily
Treten Probleme auf so kann der Debuglevel heraufgesetzt werden.
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 mit dem Befehl
mount -t nfs delixs:/backup/delixs /mnt/backup