Rsnapshot: Unterschied zwischen den Versionen

Aus wiki.archlinux.de
(Die Seite wurde geleert.)
(19 dazwischenliegende Versionen von 7 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
{{SEITENTITEL:rsnapshot}}
[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 [[Network_File_System|NFS]]-Share oder ähnliches.


{{installation|repo=community|paket=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/
Leerzeichen im Pfad werden von rsnapshot 1.3.1 nicht unterstützt.
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:
## Excludefile for rsnapshot
/home/chepaz/.thumbnails/
/home/chepaz/.gvfs/
/home/lost+found/
Die exclude-Datei muss anschließend noch in rsnapshot.conf angegeben werden
exclude_file /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:
0 2 * * * rsnapshot daily
0 3 * * 1 rsnapshot weekly
0 4 1 * * rsnapshot monthly
==Tips & Tricks==
'''Pfade kürzen:'''
Eine Backupzeile wie diese
backup  /langer/weg/zum/ziel/    localhost/
legt eine solche Ordnerstruktur im Filesystem an
$snapshot_root/daily.0/localhost/langer/weg/zum/ziel/weitere/Ordner
Möchte man nun alles unterhalb von <code>/langer/weg/zum/ziel/</code> ohne diesen kompletten Pfad ins Backup schieben damit die Struktur dann z.B. so aussieht
$snapshot_root/daily.0/localhost/weitere/Ordner
kann man die Backupzeile so erweitern
  backup  /langer/weg/zum/ziel/    localhost/    +rsync_long_args=--no-relative
Bei obiger Zeile daran denken das mit '''Tabs''' getrennt wird, '''keine Leerzeichen'''.
...möge euer Backup mit euch sein! :)
[[Kategorie:Systemverwaltung]]

Version vom 9. November 2014, 00:08 Uhr

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-Share oder ähnliches.

Installation

Das Programm ist als rsnapshot in community verfügbar, und kann von dort mittels Pacman installiert werden.

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/

Leerzeichen im Pfad werden von rsnapshot 1.3.1 nicht unterstützt.

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:

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

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

exclude_file /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:

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

Tips & Tricks

Pfade kürzen:

Eine Backupzeile wie diese

backup  /langer/weg/zum/ziel/     localhost/

legt eine solche Ordnerstruktur im Filesystem an

$snapshot_root/daily.0/localhost/langer/weg/zum/ziel/weitere/Ordner

Möchte man nun alles unterhalb von /langer/weg/zum/ziel/ ohne diesen kompletten Pfad ins Backup schieben damit die Struktur dann z.B. so aussieht

$snapshot_root/daily.0/localhost/weitere/Ordner

kann man die Backupzeile so erweitern

 backup  /langer/weg/zum/ziel/     localhost/    +rsync_long_args=--no-relative

Bei obiger Zeile daran denken das mit Tabs getrennt wird, keine Leerzeichen.

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