My Backup Strategy
I have followed the 3-2-1 backup strategy which means:
- 3 total copies of the data
- 2 local copies (on different devices)
- 1 remote copy
My backup scripts can be found on github.com/jmc265/personal-cloud, but below is a description of the process:
Local Backup
Every night at midnight, the process starts:
- Stop all docker container.This is so the data doesn't change whilst we are doing the backup
- Use rclone to make an exact copy of the data from my
primary
hard drive to mysecondary
- Re-start all docker containers
- Use Borg to create a backup of the data
secondary
hard drive
After this has run, I now have 3 copies of the data over 2 (local) devices. I now need to store a remote copy of the data.
Cloud Backup
- Use rclone to sync the Borg archive on the
secondary
hard drive to a cloud location (currently an Azure Storage Container)
Observability
I need to know if any step of the above fails. To do this, I use a dead-man-switch style checker called healthchecks. If either of the scripts fails to report to the healthchecks service on a nightly basis, I am sent a notification and can investigate/run the process manually.
Previously
Previously used Duplicati. Very stable backup software with good enough admin UI.