Rsnapshot

Aus wiki.archlinux.de

rsnapshot

Rsnapshot nutzt Rsync und Hardlinks sehr intelligent um "Schnappschüsse" deines Filesystems anzulegen. Mit Hilfe von Cronjobs lassen sich Backups mit Historie anlegen, z.B. wäre es möglich Stündlich/Täglich/Wöchentlich/Monatlich/Jährlich zu sichern. Dabei werden nur Dateien neu geschrieben die auch tatsächlich verändert wurden, auf schon existente Dateien wird "nur" ein Hardlink angelegt. Durch dieses Vorgehen wird immens Platz gespart und man hat mehrere Versionen zur Hand. Rsnapshot eignet sich somit hervorragend um Backups auf eine externe Festplatte, NFS... etc. zu machen.

Installation

  pacman -S rsnapshot

Konfiguration

rsnapshot.conf editieren:

  vim /etc/rsnapshot.conf

Die Datei ist gut durchkommentiert und fast selbsterklärend. Ein schnelles "Walkthrough" mit dem Nötigsten:

Ordner für die Backups:

  snapshot_root   /pfad/zu/deinem/backup/ordner/

Kein automatisches erstellen des Ordners wenn es ihn nicht gibt (z.b. externe Platte noch nicht angeschlossen):

  no_create_root  1

Intervalle für Backups. Im Beispiel --> 7 Vorhaltungen von daily, 4 von weekly, 3 monthly

  interval        daily   7
  interval        weekly  4
  interval        monthly 3

Auf einem Filesystem bleiben (Sonst sichert rsnapshot z.B. /proc /sys etc., das wollen wir nicht):

  one_fs          1

Um Spezielle Files/Ordner auszuschliessen legt man am besten eine Datei in /pfad/zu/deinem/backup/ordner/ an. In diese schreibt man einfach die Files/Ordner die man ausschliesen möchte. Zum Beispiel sieht so meine "exclude" für mein Laptop aus:

  ## Ecludefile for rsnapshot
  /home/chepaz/.thumbnails/
  /home/chepaz/.gvfs/
  /home/lost+found/

Das Excludefile noch in rsnapshot.conf angeben:

  exclude /pfad/zu/deinem/backup/ordner/exclude

Nun muß man rsnapshot noch sagen welche Verzeichnisse er überhaupt sichern soll. Beispielsweise hier ein Auszug von meinem Server. (Achtung: TABs, keine Leerzeichen!):

  backup  /home/          localhost/
  backup  /etc/           localhost/
  backup  /usr/local/     localhost/
  backup  /root/          localhost/
  backup  /var/           localhost/

Zum Abschluss kann man noch einen Testlauf anwerfen:

  rsnapshot -t daily

Wenn keine Fehler auftauchen: Feuer frei ;)

  rsnapshot -v daily

Der erste Lauf wird sehr lange dauern da hier erstmal alle Dateien kopiert werden. Bei allen nachfolgenden Läufen werden nur die Dateien kopiert die geändert wurden. Das -v steht für Verbose und zeigt die Shellkommandos an die rsnapshot ausführt. Wer sich von allen Details erschlagen lassen will nimmt -V oder auch -D, für einen unauffälligen Backgroundtask sei euch -q ans Herz gelegt.

Automatisierung

Wenn man das noch automatisieren möchte kann man Cronjobs anlegen:

  crontab -e

Beispiel:

  * 2 * * * rsnapshot daily
  * 3 * * 1 rsnapshot weekly
  * 4 1 * * rsnapshot monthly

...möge euer Backup mit euch sein! :)