I am fully aware that questions like this one have been asked multiple times. However, since reading lots of documentation of various backup tools didn't answer all my questions, I think its fine to describe my scenario here to get some input.
I want to develop a backup strategy that suits my needs. Here is a quick rundown of the requirements:
- Open-Source Software
- Commandline support (Not just a GUI)
- I want to backup and restore from/to multiple devices. (All devices are running linux)
- I want to be able to backup specific files/folders, and ignore others
- I want to be able to backup to multiple destinations, e.g.:
- An external HDD
- Some off-site server (In case my house burns down)
- I would like to automate backups, e.g. using cron
- I would like that backups can be encrypted properly
- I would like the backups to be deduplicating, so, only the delta to the previous backup is stored.
- When restoring from a backup I'd like to be able to directly use the restored backup as a new point to backup new changes. (Think git-repository, where you can directly push new changes after you cloned the repository to a new system).
After conducting some research, there are two programs that for the most part seem to be a good fit:
With borgbackup I see two problems:
- I can restore files in two ways: Either I fuse-mount the backup or directly extract the backup. However, when restoring, I always get just get the files. When I restore a backup to a new system, I have to set all the repositories up fresh again, in order to run new backups from the new host? That is very inconvenient. (Again: I would love a similar behavior like a git repository, where the restored data/repository directly can be used to backup (push) new data.)
- I don't think its possible to specify multiple endpoints for backups. E.g. I can backup my data to a remote server, but I can't also sync to my external HDD. (See: https://borgbackup.readthedocs.io/en/stable/faq.html#can-i-backup-from-multiple-servers-into-a-single-repository). The way I see it, cold storage backups, like an external HDD doesn't seem to go to well with borg.
With restic:
- The same as with borg, essentially.
So, my question is, how can I achieve a backup solution that works for the scenario I described above. Are borg and restic the right tools for the job here? If so, how do I deal with the problems I described? If not, is there other backup software that would be better here?