Hallo,
nachdem ich einige Sicherungs-Varianten ausprobiert habe und mit keiner so richtig zufrieden war, habe ich ein kleines Script geschrieben, welches meinen Vorstellungen vom Optimum schon sehr nahe kommt.
was bietet die Sicherung:
- Die Sicherung erfolgt vom NAS (oder Datei-Server) aus zentral, ohne menschliche Interaktion zu erfordern
- schlafende Rechner können geweckt werden
- Konfiguration erfolgt 2-stufig, bzw. dezentral, d.h.
- auf dem NAS wird konfiguriert, welche Rechner gesichert werden sollen
- auf jedem zu sichernden Rechner wird konfiguriert, was gesichert werden soll und was nicht
- die Sicherung erfolgt platzsparend, d.h. incrementelle Sicherung
- leichter Zugriff auf gesicherte Daten für Wiederherstellung
- es werden mehrere Sicherungsgenerationen auf 2 Ebenen verwaltet
- die Sicherungsgenerationen hängen in keinster Weise vom Kalender ab
1. Einrichtung
1.1. Anmeldung ohne Kennwort einrichten
1.1.1. NAS
Damit eine Anmeldung ohne Kennwort-Eingabe funktioniert, muss auf dem Ausgangsrechner ein Schlüssel erstellt werden, welcher dann auf alle in Frage kommenden Rechner verteilt und aktiviert wird.
Schlüssel für ssh erstellen
1.1.2. zu sichernder Rechner (z.B. vdr.fritz.box)
öffentlichen Schlüssel für ssh kopieren
Schlüssel aktivieren
cd /root/.ssh
touch authorized_keys
chmod 600 authorized_keys
cat ../backup-rsync.key.pub >> authorized_keys
rm ../backup-rsync.key.pub
1.2.Installation überprüfen
1.2.1. NAS
Installation überprüfen
1.2.2. zu sichernder Rechner (z.B. vdr.fritz.box)
Installation überprüfen
1.3. Sicherung konfigurieren
1.3.1. NAS
zu sichernde Rechner festlegen
1.3.1.1 Varianten
wenn der zu sichernde Rechner nicht 24/7 läuft und man das Aufwachen für die Sicherung in den Schicherungsprozess integrieren möchte, kann man den host-Eintrag statt dessen wie folgt erstellen:
cat > /root/rsync/hosts.backup << EOFvdr.fritz.box mac:adr:esse 123noch.ein.rechner 08:15:de:ad:be:af 65EOF
Hierbei steht der Hostname als erstes in der Zeile, gefolgt von der Mac-Adresse des Rechners (kann per ipconfig auf dem Rechner ermittelt werden) und als letztes kann noch die Anzahl an Sekunden angegeben werden, die das NAS nach dem Aufwachbefehl warten soll, bevor es den Rechner sichert.
Falls die Rechner durch das Backup-Script aufgeweckt werden sollen, muss das Script noch angepasst werden.
Es gibt zwar schon die Funktion "wakeUpHost()" aber die entsprechenden Befehle sind noch auskommentiert.
1.3.2. zu sichernder Rechner (z.B. vdr.fritz.box)
festlegen, was gesichert werden soll
Damit sind die beiden wichtigsten Verzeichnisse zum sichern festgelegt worden.
Unter /var/lib liegt auf manchen VDR-Rechnern das Verzeichnis für die Aufnahmen video.00 sowie ein Vereinfachungslink video - und die sollen ja bitte nicht gesichert werden.
festlegen, was nicht gesichert werden soll
2. Vorbereitung
2.1. Sicherung vorbereiten
2.1.1. Basisverzeichnis auf NAS einrichten
Vor der ersten Sicherung muss noch ein Verzeichnis erstellt werden, in das gesichert werden soll
2.2.1. Skript auf NAS kopieren
Das script aus dem Anhang wird auf das NAS kopiert. Am besten nach /usr/sbin wo es nur der Superuser ausführen darf.
Nach dem Download kann das Ausführungskennzeichen verloren gegangen sein, also lieber sicher gehen:
3. Sichern
3.1. Sicherung ausführen
4. Schlusswort
4.1. Zusammenfassung
Die letzte Sicherung liegt immer unter /srv/backup/back.first.0.
Wer mag, kann das Verzeichnis freigeben - wobei ...
... ich würde im Falle eines Falles lieber gezielt nach der Datei suchen, die ich wiederherstellen möchte. Eine einzelne Datei ist auch schnell per scp kopiert.
So kann man sich davor schützen, "aus Versehen" von der Sicherung was zu löschen.
Ich weiß, es gibt noch --delete Optionen für rsync. Die habe ich ganz bewusst nicht verwendet, denn ich will ja keine Spiegelung erstellen, sondern eine Sicherung.
Die Sicherung soll auch für den Fall sein, dass ich in meiner Dämlichkeit eine falsche Datei gelöscht habe, von der ich keine lokale Kopie habe ...
Wenn ich jetzt nicht zu schlampig war, dann müsste es noch eine in der Sicherung geben.
Die Dateien, mit denen ich auf jedem zu sichernden Rechner festlege, was gesichert werden soll, werden vor jeder Sicherung auf das NAS kopiert, d.h. ich kann Änderungen am zu sichernden Rechner vornehmen ohne die Konfiguration auf dem NAS aktualisieren zu müssen.
Das Script pflegt sich einen permanenten Sicherungszähler. Egal wie oft ich sichere und egal wie groß die Abstände zwischen den Sicherungen sind, bei jeder Sicherung wird der Zähler weiter gesetzt.
Im Script gibt es 2 Variablen, über die die Generationen gepflegt werden:
ist die Vorgabe, d.h. es gibt 10 Sicherungen im ersten Level und 5 Sicherungen im zweiten Level.
Bei jeder Sicherung wird der erste Level um eins weiter gezählt. Wenn im ersten Level 10 Sicherungen durchgeführt wurden wird die letzte Sicherung vom ersten Level ins zweite Level kopiert.
Bei der Sicherung wird sowohl von rsync aus, als auch beim Kopieren mit hardlinks gearbeitet. Das heißt, jede unveränderte Datei gibt es einmal, egal in wievielen Sicherungen sie vorkommt.
Beim Wiederherstellen kann also immer auf die Dateien der letzten Sicherung zugegriffen werden.
Gruß Gero