Graham Eddy

rsnapshot for domain clusters

Backup hosts, organised as clusters by domain. The backups appear as images of the client hosts at various times (snapshots). rsnapshot pulls files via rsync, utilising its efficiencies:

2022-08-01 Ubuntu 21.10-22.04


Main characteristics of this domain-oriented implementation:


Installation

graham:~ sudo apt update graham:~ sudo apt install rsnapshot graham:~ sudo mv /etc/rsnapshot.conf /etc/rsnapshot.conf-dist # save as template graham:~ sudo mkdir /etc/rsnapshot # container for per-domain configs graham:~ sudo mkdir /srv/backup # container for per-domain backups graham:~ sudo chown root:adm /srv/backup graham:~ sudo chmod 750 /srv/backup graham:~ sudo mkdir /run/rsnapshot # container for per-domain run files graham:~ sudo mkdir /var/log/rsnapshot # container for per-domain logs graham:~ sudo chown root:adm /var/log/rsnapshot graham:~ sudo vi /etc/tmpfiles.d/rsnapshot.conf
/etc/tmpfiles.d/rsnapshot.conf new file
d /run/rsnapshot 755 root root
d /var/log/rsnapshot 755 root adm

Add domain for backing up

This example adds domain geddy.au for backing up, but no hosts within it as yet.

graham:~ sudo mkdir /etc/rsnapshot/geddy.au graham:~ cd /etc/rsnapshot/geddy.au graham:/etc/rsnapshot/geddy.au sudo cp /etc/rsnapshot.conf-dist rsnapshot.conf graham:/etc/rsnapshot/geddy.au sudo vi rsnapshot.conf
/etc/rsnapshot/geddy.au/rsnapshot.conf apply changes to settings

Warning! this file requires tabs (⇥) as field separators. Spaces are significant; they are not white-space. Using spaces instead of tabs will result in syntax errors reported.

snapshot_root⇥··/srv/backup/geddy.au/
cmd_cp⇥·/bin/cp
cmd_rsync⇥······/usr/bin/rsync
cmd_ssh⇥/bin/cp
cmd_logger⇥·····/usr/bin/rsync
cmd_du⇥·/usr/bin/du
cmd_rsnapshot_diff⇥·····/usr/bin/rsnapshot-diff
retain⇥·daily⇥··7
retain⇥·weekly⇥·4
retain⇥·monthly⇥3
logfile⇥/var/log/rsnapshot/geddy.au.log
lockfile⇥·······/run/rsnapshot/geddy.au.pid
du_args⇥-csh
link_dest⇥······1
graham:/etc/rsnapshot/geddy.au sudo touch /var/log/rsnapshot/geddy.au.log graham:/etc/rsnapshot/geddy.au sudo chown root:adm /var/log/rsnapshot/geddy.au.log graham:/etc/rsnapshot/geddy.au sudo mkdir /srv/backup/geddy.au graham:/etc/rsnapshot/geddy.au sudo crontab -e
temp filenew file, or append to end
# geddy.au backups
32 4 * * * rsnapshot -c /etc/rsnapshot/geddy.au/rsnapshot.conf daily
22 4 * * 6 rsnapshot -c /etc/rsnapshot/geddy.au/rsnapshot.conf weekly
12 4 1 * * rsnapshot -c /etc/rsnapshot/geddy.au/rsnapshot.conf monthly

Add client host to backed-up domain

The backup server must have keyed passwordless ssh access by root to client hosts's root account. Briefly, this usually means: