After about 30 years with Linux and a decade of digital photography, /home is about 1.4 TB on an 2TB SSD. I keep everything critical to backup in /home. Even /usr/local is a bind mount of /home/local. My digikam SQL database is on fast nvme, but each day it is is tarred up into a folder on /home. All I need to do is make sure /home is safe.
I do daily
decremental backups of /home to a onboard 3TB hard drive (which only mounted and rotating when doing backups) :
Code:
nice ionice -c 3 rsync -a --one-file-system --no-compress --delete --force --delete-excluded --exclude-from /usr/local/etc/rsync-exclude.conf -b -HAX --sparse --stats --backup-dir=/mnt/backup/home/past/$ymdhms /home/ /mnt/backup/home/current/
This is fast and simple, and it gives me the ability to find old copies of files in /mnt/backup/home/past/. There is a slight risk of atomicity issues, I mainly deal with that by timing rsyncs to likely down times.
Once a week I run a similar backup to one of four external USB 4TB drives. The main difference is these external backups are on encrypted filesystems. I have to be careful about how fast I feed the USB drives because they SMR hard-drives,. To avoid them slowing down to a crawl, I throttle the rsync with --bwlimit=50M. These external drives get stored away from the house. They're about the size of a pack of cards, get stored in a bubble-wrap postal bag, dry-sack, and then in a waterproof box.
I do similar for the OS partitions, but with no --backup-dir folder, just an rsync to a separate partition. If there has been a kernel update, the OS backup automatically stops running for a couple of days - just in case there are any driver issues. The OS backup is a nice to have, I can easily get back into action by installing the OS from scratch.