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