rsnapshot ist ein Werkzeug um Backups von lokalen oder entfernten Dateisystemen anzulegen. Es arbeitet auf der Basis von rsync und SSH und benutzt Hardlinks im Dateisystem selbst um Platz zu sparen.
Es werden sogenannte snapshots angelegt, die den Dateisysteminhalt der zu sichernden Ordner zum jeweiligen Zeitpunkt wiederspiegeln. Dabei handelt es sich um simple Kopien der zu sichernden Ordner. Um Platz zu sparen, wird die Fähigkeit von rsync verwendet, sogenannte Hardlinks für Dateien anzulegen, die sich seit dem letzten Backup nicht geändert haben. Dadurch werden identische Dateien nicht doppelt kopiert und Platz gespart.
rsnapshot ist an sich sehr flexibel in der Festlegung von Backup-Intervallen. Für dieses eisfair-Paket wurde eine als sinnvoll angenommene Organisation der möglichen Intervalle und Intervallebenen ausgewählt, um dem Nutzer die manuelle Abstimmung von Intervallen und Ausführungszeiten der entsprechenden Cronjobs abzunehmen. Die Zeitebenen entsprechen vertrauten Intervallen mit abnehmender Granularität. Im Einzelnen existieren folgende Ebenen: hourly, daily, weekly, monthly.
Der Backup-Prozess läuft so ab, dass auf der untersten Ebene 'hourly' tatsächlich die zu sichernden Dateien kopiert werden. Dabei wird nicht strikt stündlich gesichert, sondern nach Wahl des Nutzers alle zwei bis zwölf Stunden. Dies wird über die Anzahl täglich anzulegender Snapshots in der Variablen RSNAPSHOT_BACKUPS_PER_DAY konfiguriert. Der jeweils aktuellste Snapshot liegt im Ordner hourly.0, mit jedem weiteren Lauf werden die Snapshots rotiert. Der älteste Snapshot der jeweiligen Ebene trägt die höchste Nummer.
Die Cronjobs der nächsthöheren Ebene 'daily' werden nur einmal täglich ausgeführt. Hier wird stets der älteste Ordner der tieferen Ebene 'hourly' zum aktuellen Ordner daily.0. Lässt man beispielsweise sechs Backups pro Tag anlegen, wird am Ende des Tages der Ordner hourly.5 zum neuen Ordner daily.0. Die Ordner der Ebene 'daily' werden ebenso rotiert. In dieser Ebene gibt es die feste Anzahl von sieben Ordnern. Der älteste wird an einem vom Nutzer festgelegten Wochentag zum Ordner weekly.0. Dieses Prinzip der Rotation und Verschiebung zur nächsthöheren Ebene setzt sich weiter fort bis monthly. Das Rotationsprinzip ist unabhängig davon ob lokale oder entfernte Ordner gesichert werden sollen.
Gültige Werte: yes, no
Gültige Werte: vollständige Pfade
Auf dem Level 'hourly' erfolgen die eigentlichen Backups durch Kopieren der Daten. Bei höheren Ebenen werden nur bereits erzeugte Snapshots tieferer Ebenen umbenannt bzw. verschoben. Das heißt die Jobs der Ebene 'hourly' benötigen die meiste Zeit. Abhängig von der Größe der zu sichernden Daten, sollte der Parameter daher nicht zu hoch eingestellt werden.
Gültige Werte: 2, 3, 4, 6, 8, 12
Standardwert: 6
Gültige Werte: mon, tue, wed, thu, fri, sat, sun
Standardwert: sat
Gültige Werte: numerisch
Standardwert: 3
Gültige Werte: numerisch
Gültige Werte: yes, no
Gültige Werte: vollständige Pfade
Eine automatische Wiederherstellung der Daten ist nicht vorgesehen. Da die Dateien direkt im Dateisystem liegen, können und sollen sie einfach mit den bekannten Bordmitteln kopiert werden.
Es ist sehr zu empfehlen, normalen Nutzern keine Leserechte auf den Backup-Ordner selbst zu geben. Alle Dateien dort haben die Rechte, die sie auch im Quelldateisystem haben. Nutzer könnten hier Dateien ändern oder löschen und so die Konsistenz des Backups zerstören. Daher warnt das Paket beim Speichern der Config, wenn der in RSNAPSHOT_BACKUP_TO_DIR angegebene Ordner nicht root gehört und nicht die Rechte 0700 besitzt. Um den Nutzern dennoch Nur-Lese-Zugriff auf die Snapshots zu gewähren, bietet sich folgende Vorgehensweise an. To be continued ...