Rsnapshot: Unterschied zwischen den Versionen

Aus wiki.archlinux.de
Keine Bearbeitungszusammenfassung
Zeile 1: Zeile 1:
==rsnapshot==
==rsnapshot==


[http://www.rsnapshot.org/ 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.
[http://www.rsnapshot.org/ Rsnapshot] nutzt Rsync und Hardlinks, um Schnappschüsse eines Dateisystems anzulegen. In Kombination mit [[Cron]]-Jobs lassen sich so regelmäßig Backups mit Historie anlegen. Dadurch ist es möglich, automatisiert stündlich, täglich, wöchentlich, monatlich oder jährlich zu sichern. Die Besonderheit hier ist, dass dabei nur Dateien neu geschrieben werden, 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 für Backups auf eine externe Festplatte, ein [[NFS]]-[[mount]] oder ähnliches.


===Installation===
===Installation===
Zeile 11: Zeile 11:
===Konfiguration===
===Konfiguration===


rsnapshot.conf editieren:
rsnapshot.conf editieren
<code>
<code>
   vim /etc/rsnapshot.conf
   vim /etc/rsnapshot.conf
</code>
</code>


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


Ordner für die Backups:
Zielordner für die Backups:
<code>
<code>
   snapshot_root  /pfad/zu/deinem/backup/ordner/
   snapshot_root  /pfad/zu/deinem/backup/ordner/
</code>
</code>


Kein automatisches erstellen des Ordners wenn es ihn nicht gibt (z.b. externe Platte noch nicht angeschlossen):
Kein automatisches erstellen des Ordners wenn es ihn nicht gibt (z.b. externe Platte noch nicht angeschlossen)
<code>
<code>
   no_create_root  1
   no_create_root  1
</code>
</code>


Intervalle für Backups. Im Beispiel --> 7 Vorhaltungen von daily, 4 von weekly, 3 monthly
Intervalle für Backups. Das bedeutet, dass beim ''daily'' Backup sieben inkrementelle Backups angelegt werden (''daily.0'', ''daily.1'',...), bevor wieder von vorne angefangen und überschrieben wird.
<code>
<code>
   interval        daily  7
   interval        daily  7
Zeile 35: Zeile 35:
</code>
</code>
Auf einem Filesystem bleiben (Sonst sichert rsnapshot z.B. /proc /sys etc., das wollen wir nicht):
Auf einem Filesystem bleiben (Sonst sichert rsnapshot z.B. /proc /sys etc., das wollen wir nicht)
<code>
<code>
   one_fs          1
   one_fs          1
</code>
</code>


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 ausschliessen möchte.
Um bestimmte Ordner oder Dateien auszuschließen, legt man eine Datei beliebigen Namens, zum Beispiel ''exclude'' in ''/pfad/zu/deinem/backup/ordner/'' an. In dieser listet man einfach die auszuschließenden Dateien auf.
Zum Beispiel sieht so meine "exclude" für mein Laptop aus:
Zum Beispiel sieht so meine "exclude" für mein Laptop aus:
<code>
<code>
   ## Excludefile for rsnapshot
   ## Ecludefile for rsnapshot
   /home/chepaz/.thumbnails/
   /home/chepaz/.thumbnails/
   /home/chepaz/.gvfs/
   /home/chepaz/.gvfs/
Zeile 49: Zeile 49:
</code>
</code>


Das Excludefile noch in rsnapshot.conf angeben:
Die exclude-Datei muss anschließend noch in rsnapshot.conf angegeben werden
<code>
<code>
   exclude /pfad/zu/deinem/backup/ordner/exclude
   exclude /pfad/zu/deinem/backup/ordner/exclude
</code>
</code>
Nun muß man rsnapshot noch sagen welche Verzeichnisse er überhaupt sichern soll. Beispielsweise hier ein Auszug von meinem Server. ('''Achtung: TABs, keine Leerzeichen!'''):
Nun muss man rsnapshot noch sagen, welche Verzeichnisse er überhaupt sichern soll. Beispielsweise hier ein Auszug von meinem Server.
('''Achtung: TABs, keine Leerzeichen!''')
<code>
<code>
   backup  /home/          localhost/
   backup  /home/          localhost/
Zeile 62: Zeile 63:
   backup  /var/          localhost/
   backup  /var/          localhost/
</code>
</code>
In diesem Beispiel würde nun das erste tägliche Update ''daily'' nach /pfad/zu/deinem/backup/ordner/localhost/daily.0/ geschrieben werden.


Zum Abschluss kann man noch einen Testlauf anwerfen:
Zum Abschluss kann man noch einen Testlauf anwerfen
<code>
<code>
   rsnapshot -t daily
   rsnapshot -t daily
Zeile 72: Zeile 74:
   rsnapshot -v daily
   rsnapshot -v daily
</code>
</code>
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.
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.
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===
===Automatisierung===
Wenn man das noch automatisieren möchte kann man Cronjobs anlegen:
Wenn man das noch automatisieren möchte kann man [[Cron]]-Jobs anlegen
<code>
<code>
   crontab -e
   crontab -e

Version vom 12. Oktober 2009, 12:44 Uhr

rsnapshot

Rsnapshot nutzt Rsync und Hardlinks, um Schnappschüsse eines Dateisystems anzulegen. In Kombination mit Cron-Jobs lassen sich so regelmäßig Backups mit Historie anlegen. Dadurch ist es möglich, automatisiert stündlich, täglich, wöchentlich, monatlich oder jährlich zu sichern. Die Besonderheit hier ist, dass dabei nur Dateien neu geschrieben werden, 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 für Backups auf eine externe Festplatte, ein NFS-mount oder ähnliches.

Installation

  pacman -S rsnapshot

Konfiguration

rsnapshot.conf editieren

  vim /etc/rsnapshot.conf

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

Zielordner 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. Das bedeutet, dass beim daily Backup sieben inkrementelle Backups angelegt werden (daily.0, daily.1,...), bevor wieder von vorne angefangen und überschrieben wird.

  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 bestimmte Ordner oder Dateien auszuschließen, legt man eine Datei beliebigen Namens, zum Beispiel exclude in /pfad/zu/deinem/backup/ordner/ an. In dieser listet man einfach die auszuschließenden Dateien auf. Zum Beispiel sieht so meine "exclude" für mein Laptop aus:

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

Die exclude-Datei muss anschließend noch in rsnapshot.conf angegeben werden

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

Nun muss 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/

In diesem Beispiel würde nun das erste tägliche Update daily nach /pfad/zu/deinem/backup/ordner/localhost/daily.0/ geschrieben werden.

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 Cron-Jobs anlegen

  crontab -e

Beispiel:

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

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