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