Seconding unison. It's kind of a forgotten tool but it's remarkably robust and good at what it does. (I have to think being written in OCaml has been part of why it doesn't have more of a community around it.)
For picky versions, there is nice `addversionno = true` option, which will let you have multiple unison versions installed simultaneously. It will always pick the right one.
I agree with slowness -- I feel the recent versions are pretty fast on Linux, but it can be faster. Also it's "scan, then transfer" approach means it can take lots of memory if there is a lot of files.
Still, if you can your rsync in your application, use it. For automated backups, you cannot beat it. But unison has two unique advantages:
- Proper two way sync -- doing it safely with rsync is almost impossible.
- GUI/TUI which shows what changed and allows conflict resolution.
Indeed. But you still need multiple versions installed, which means you have to sidestep package managers (and generally common usage practices); which is really inconvenient if you have multiple systems with different os’s and distros.
I had never come across that one either, thanks for the link! It does look a little on the heavy side for my use case, but it might come in handy at some point! It looks like it has all the bells and whistles. Cheers.
Amazing stuff. Brew, Cygwin and your favorite package managers have it.