Skip to content

rsnapshot unter Debian

Mit rsnapshot können wir sogenannte "Snapshot"-Ordner zur Datensicherung erstellen. Zuerst installieren wir die Pakete rsnapshot und liblchown-perl aus den Debian Paketen.

root:~# apt-get install rsnapshot liblchown-perl

Dann entpacken wir das Archiv snapshot.tar.gz nach /usr/local/share/snapshot.

root:~# mkdir -p /usr/local/share/snapshot && cd /usr/local/share/snapshot/
root:~# curl -sL https://docs.tuxnet24.de/others/.img/snapshot.tar.gz | tar xz --strip 1

Im Skript snapshot.sh wäre eigentlich nur die Variable cfg[mail,notify] anzupassen (root@localhost) und die Variable cfg[global,target], der Ort wo die Snapshots gespeichert werden sollen.. Die eigentliche Konfiguration findet in der Datei /usr/local/share/snapshot/conf.d/rsnapshot-<hostname>.conf statt. Dort setzen wir den Pfad snapshot_root /<path>/<to>/<backup>/<hostname> und die Verzeichnisse, welche gesichert werden sollen (:warning: Es müssen als Trenner Tabs verwendet werden).

# Config version
config_version  1.2

# Path to the Backup root directory
snapshot_root   /var/backup/<hostname>

# Path's to binarys (e.g. ssh, rm, rsync...)
cmd_rm      /bin/rm
cmd_rsync   /usr/bin/rsync
cmd_logger  /usr/bin/logger
cmd_ssh     /usr/bin/ssh

# Specify the path to a script (and any optional arguments) to run right
# before rsnapshot syncs files
#
#cmd_preexec    /usr/local/sbin/snapshot/hooks.d/pre-hook.sh

# Specify the path to a script (and any optional arguments) to run right
# after rsnapshot syncs files
#
cmd_postexec    /usr/local/share/snapshot/hooks.d/post-hook.sh "/var/backup/<hostname>"

# Backup interval
interval    daily       7
#interval   weekly  4
#interval   monthly 6

# Logfile/Loglevel
verbose 2
loglevel    2
logfile /var/log/rsnapshot.log

# path to PID file
lockfile    /var/run/rsnapshot.pid

# Location of the exclude file
exclude_file    /usr/local/share/snapshot/conf.d/rsnapshot-exclude.conf

rsync_long_args --rsync-path=rsync --delete --numeric-ids --relative --delete-excluded

# Which directories to be backed up
backup  /etc/   ./
backup  /root/  ./
backup  /usr/local/share/   ./
backup  /usr/local/bin/ ./
backup  /usr/local/sbin/    ./
#backup /var/www/   ./
backup  /var/spool/cron/    ./

# EOF

Info

Wer möchte, oder es benötigt hat die Möglichkeit wie in dieser Konfiguration noch post/pre hooks Skripte von rsnapshot ausführen zu lassen.

Nun erstellen wir uns noch einen Cronjob, damit das Backup Nachts um 0:45 durchgeführt wird.

root:~# crontab -e
....
# 20110829 - daily snapshot backup
45 0 * * * /usr/local/share/snapshot/snapshot.sh >/dev/null 2>&1