Syncthing server client and backup strategy with rsnapshot

Hi,

(dont know if this is interesting for someone, but maybe :slight_smile: an answer to the question how syncthing can be used to make backups)

How I use syncthing… Objective:

  • Multiple devices should have access to the same files, even if they are not online
  • Easy backup of these files with versioning

Solution in the case you have a server: Syncthing + rsnapshot

  • Server runs syncthing
  • All devices run syncthing
  • Syncthing is used to do exactly what it is supposed to, syncing the files across all devices and the server.
  • Then the backup is realized by plugging in an external HDD to the server and running rsnapshot to make a backup (with versioning) from the synced files.

Advantages:

  • Sync over multiple devices
  • Backup is available even if a file gets deleted or what ever goes wrong
  • Backups do not require much space, as rsnapshot uses hardlinks
  • Even if you do not need to sync one folder to an other device, this solution is nice for the following reason. Consider the case you want to backup multiple devices. Normally you would have to use your HDD to backup each device seperately, which most people would not do very seriously. However, the backup of the server can be automated (except for plugging in the HDD). Using syncthing to sync to the server and then just backing up this one centralized is very comfortable.

Things I miss from syncthing: when the backup scripts are running, I would prefer to pause the syncthing instance on the server. At the moment, I just kill it and restart it again, doing this via the API would, however, be nicer. I remember that there was an issue about this, but I can only find the issues related to pausing specific devices and not the whole instance. On the other hand, this is really a minor issue…

Syncthing is really great! Apart from the fact that you know nobody is watching you, if there is a serious error which would cause data loss, I am pretty sure someone would find it and raise an issue! This is the main reason for me to use it, compared to alternatives!

2 Likes

For snapshot backup I highly recommend Restic (golang) or Borgbackup (python + C). Which also is crypto-safe and can detect data corruption (SHA256 hashes). See:

The approach with multiple devices and a central “backup server” is the most convenient in my opinion.

Keep in mind, syncthing is for synchronisation (hence the sync in thing :slight_smile: ). It is NOT an backup application.

+1 for BorgBackup. Very nice tool with Incremental Forever and Chunk based Deduplication It runs here on a central Storage Node which also holds a lot of Syncthing Folders

1 Like

what I like about rsnapshot compared to the others is that you do not need any tool to view/restore the backup. Furthermore, it is based on rsync, which is super stable.

That syncthing is not for backups is the reason for this post. BUT: As I described it, it is actually part of a backup solution, I would say.