a centralized backup server can easily be set up with
rsnapshot. This program can pull specified remote folders with rsync.
- edit the config file
/etc/rsnapshot.conf. The default config is well documented and one has only to modify the given lines. The man page is also of great help (link). I found the following to fit my needs (the path need should be adjusted to each one’s needs)
config_version 1.2 snapshot_root /mnt/USBBkupDisk/rsnapshot cmd_cp /bin/cp cmd_rm /bin/rm cmd_rsync /usr/bin/rsync cmd_ssh /usr/bin/ssh cmd_logger /usr/bin/logger cmd_du /usr/bin/du retain hourly 4 retain daily 7 retain weekly 4 verbose 5 loglevel 3 lockfile /tmp/rsnapshot.pid include_file /home/bkuper/DarkTower.include exclude_file /home/bkuper/DarkTower.exclude backup DarkTower:/home/paul/ paulTower/ backup DarkTower:/data/paul/ paulTower/
- the in-/exclude files are the usual one from
rsync, e.g. something like this:
/home/paul/.* /home/paul/.*/ /home/paul/bin /home/paul/Downloads /home/paul/VirtualBox VMs
one needs to note here, that the order of include/exclude files is important! the first pattern which matches a file takes effect.
- the user (here bkuper) needs to be able to sign into the client machine such that it can pull the backup. (
- the interval which were defined above (
retain hourly 4 retain daily 7 retain weekly 4) will be applied with a cronjob:
$ crontab -l # do hourly backups at 9,13,19,23h 0 9,13,19,23 * * * /usr/local/bin/rsnapshot hourly # do daily backups at 22:50 50 22 * * * /usr/local/bin/rsnapshot daily # do weekly backups at mondays 22:40 40 22 * * 1 /usr/local/bin/rsnapshot weekly