As Hacker News is filled with people who are well versed it IT, I would like to ask readers to share their personal backup strategies for their preferred operating system and what tools they use. Also, for those willing to share, are you performing full system backups or just backing up your important files?
I do a weekly full back of the root filesystems of my Linux desktop
and wife's laptop machines (while booted from rescue media) to zfs
snapshots on a home file server running freebsd using rsync. The server
holds snapshots for the most recent five weeks. A script on the server
watches for changes and synchronizes its copy of my desktop home
directory and paperless-ngx archive with a luks encrypted filesystem
backed by a regular file, splits the image file into 1MB chunks, and
uploads the changed chunks since the previous week to a cheap vps
using rsync (typically 2 to 4 GB out of 400 total). The image file is
on an external SSD connected to the server in case I have to grab it
and run. (I prefer luks and ext4 for external media to the bsd
equivalents so the server uses an Arch Linux vm with raw drive
passthrough.) A script on the vps synchronizes it with redundant
copies on three independent cloud storage providers using rclone, one
of which stores monthly snapshots for the most recent seven months.
I've memorized the passwords for the cloud providers and can access
them without 2FA. A script on my laptop watches the cloud storage
providers for changes and synchronizes one of them using rclone to a
local copy on a rotating basis, reconstructs the luks filesystem
image, and checks the SHA1 sum. My laptop also dumps a copy of the
image to an old-timey slow-ass external usb hard drive once per
quarter that holds the most recent four quarters. Once a year I back
up the paperless archive and selected important files to DVD.
For personal files/media, I heard about the 3-2-1 method: 3 copies, 2 formats, 1 offsite. I'd likely want to add a complete self-contained toolchain to convert format with that offsite copy.
I'm not nearly as particular with my OS backups as I used to be. For instance Desktop personalization is minimal. I've used too many computers over the years to maintain much configuration beyond a small number of dot-files. Hobby code goes in Github/codeberg.org and some kind of cloud sync for my daily driver.
Another thing that ended up happening naturally is that I keep hard drives of old computers when I upgrade. They serve as point-in-time snapshots. I haven't made it a point to be able to necessarily read all of them but it doesn't take much like having a number of USB-disk/media interface adapters around.
My workspace tool (https://caspian.md/app) that i used on a day to day basis for my daily workflows sets up an automated backup daily for all my workflows.
I use an automated script, scheduled with cron, for daily backups using restic to a Hetzner Storage Box and weekly, makes a test restoring to a temporary folder and comparing checksums.
If something goes wrong it emails me if the comparison fails or if the backup failed.
Relevant stuff is either on Github or Codeberg for dev stuff and on a openCloud Instance for other files. openCloud gets backuped daily. If I ever need to reinstall my computer(s), I need to reinstall tools mostly and sync everything again.
Oh and as I just read it in the comments: I also have a parachute backup for images, iCloud stuff etc.
I just have a cron job running a simple bash script on all my machines (Linux, macOS) that compressess all my personal files (mainly configs and docs) on a daily basis. It then uploads it to a local NAS (just two USB sticks connected to a Raspberry Pi; might upgrade to a proper homelab at some stage). This is in turn backed up to Filen (Germany based). The backups include 30 daily backups + 12 monthly backups.
As for system-level backups, I just use btrfs automatic snapshots (via Snapper).
Mac: I use Parachute Backup to keep a local copy of my iCloud files and photos on an external drive. Backblaze backs the external drive and all local working files (roughly 16TB altogether) up for ~$100/year.
I'm not nearly as particular with my OS backups as I used to be. For instance Desktop personalization is minimal. I've used too many computers over the years to maintain much configuration beyond a small number of dot-files. Hobby code goes in Github/codeberg.org and some kind of cloud sync for my daily driver.
Another thing that ended up happening naturally is that I keep hard drives of old computers when I upgrade. They serve as point-in-time snapshots. I haven't made it a point to be able to necessarily read all of them but it doesn't take much like having a number of USB-disk/media interface adapters around.
If something goes wrong it emails me if the comparison fails or if the backup failed.
- second copy on 12Tb Raid5 NAS, via rsync
- code and settings also on cloud ( gitlab )
- documents also on cloud ( GDrive )
- media burned on DVD.
As for system-level backups, I just use btrfs automatic snapshots (via Snapper).
You do need to modify it's default exclusions... I lost some movies I shot with my DSLR that way. 8(
- Daily snapraid backup of my NAS
- Once a month I save my desktop to another offline SSD
- Once a month I save important NAS files to an offline HDD