Is restic suitable for me? [Multi-Client Backup & Synchronization]


#1

Hello restic community!

I think about using restic for multi-client backup and synchronization to replace my current solution.

The situation: I want to synchronize my data (arbitrary files, i.e. media, binary and text) between my desktop pc and my laptop, while also have an online backup available. I do NOT necessarily need version control.

What I am currently doing: Synchronizing everything to MEGA via the client.

What I dislike:

  • On my (not so fast) laptop, on startup the client takes too much CPU to initialize the live synchronization.
  • Sometimes the MEGA servers are unreliable (uptime) which delays the startup of the client while effectively doing nothing.
  • It is painful to set up rules for inclusion / exclusion of certain files (although it is possible).
  • Also, I don’t REALLY need the live synchronization.

I’d rather have a git-like command line interface to add and “commit” files when needed. Then I can backup my files just once per day or so.

So here comes my actual question:
Does restic support multiple clients for one backup? E.g. upload/commit on one PC, download/“restore” on second PC and vice versa.
Basically, I want GIT without version control (which creates too much local overhead).

Also, can restic display changed files? Like “git status” does.

Thanks for any help!


#2

Yes, if both PCs use the same repository, they can read each others’ snapshots.

However, restic is a backup tool and not a synchronization tool; don’t expect much support for this type of usage. In particular, restic does not like to restore on top of existing files, and will complain that the target files already exist if you don’t delete them first.

Restic can display the differences between snapshots (restic diff) but does not have a mechanism for displaying the differences between a snapshot and files on your system. (On a Linux system, you can combine restic mount with diff -rq to approximate a status report.)


I would suggest using a different tool for synchronization. My recommendation is Syncthing, which performs fully peer-to-peer synchronization and can mesh multiple nodes providing a torrent-like synchronization process. Changes are synced in near-realtime (as soon as the Syncthing daemon notices the changes).

If you are syncing a directory between computers, you really only need to perform restic backups on one of those directories – or you can back up both anyway, and restic will deduplicate it all.


#3

Thanks for answering that fast.

Ok, this more or less makes restic useless for me.

This is not really an option for me, as I will work on either my pc or my laptop, so I definitely need to store it online.

Anyway, thanks for helping!


#4

It sounds like you don’t quite understand what Syncthing does…

It’s only an issue if both computers might not be online at the same time, and then you move from one to the other.

If both computers are online at the same time, they will maintain a persistent connection between them and synchronize changes live, as they happen. If one computer is offline, the nodes will reconnect to each other as soon as both are online again.

You would have the same issue with something like Dropbox – your laptop won’t sync to the Dropbox server if it is offline. If it’s online, then both Dropbox and Syncthing would work.

But, if your PC is powered off and you work on your laptop, then you power off your laptop and power on your PC, yes, that would cause a problem as they wouldn’t both be online at the same time. Dropbox would work in that scenario. So it all depends whether both computers would be online at the same time.


#5

I think I do understand.

And exactly this is the case. It’s just a private PC and Laptop. I work at home, shut everything down, go to university, start up the laptop and then I want to have the latest changes.


#6

Gotcha, then I take it back. Though I would argue that there’s little reason to shut down your PC as power cycles will wear the critical components faster than leaving them on.


#7

I was doing this with Dropbox. Since I can’t trust online services, I was encrypting my documents with Encfs so it can work in my laptop and phone. When I acquired a Raspberry Pi I move to Syncthing because my Raspberry Pi is always online. The Syncthing client have less impact in my laptop that the Dropbox client. Personally, I think this is a great option and it is really cheap since Raspberry Pi does not consumes a lot of electricity. What I like is that you can turn on versioning by device too. Maybe it is not what you have right now but with $50 (max) bucks you can do that plus you can do a lot of things with those little machines. Maybe a little more if you don’t have a HDD and you want to have more space.

As for restic, by far is one of the best backup solutions I’ve ever tried. It’s free too, so you don’t lose anything backing up with it. It is not for sync tho, but you’ll always need a backup solution for important files.


#8

You can try cryptomator with Dropbox or any other

Else use rclone with crypt remote


#9

Thanks for the recommendation, but this is not exactly what I’m looking for.


#10

Hi!

I don’t need an encryption tool, but a synchronization tool that I can activate on demand.


#11

This sounds like you want git-annex https://git-annex.branchable.com/ combined with one of these free cloud storage solutions.

It would allow you to synchronize a large collection of data while only storing the ‘new’ data online. Check out the video on the git-annex assistant.


#12

Then you can use rclone to manually trigger a sync between local & remotes.