There are many bi-directional sync tools that can use rclone. I even wrote one in the past (PyFiSync).
The thing is, bi-directional sync requires some opinionated design decisions. While some alternatives are great, they didn't work exactly as I wanted. And my own tool, PyFiSync, was designed around ssh+rsync with rclone added later. Since rsynce, unlike rclone, could efficiently propagate small changes, a lot of effort went into tracking moves of modified files. Since rclone always copies the whole file, the sync algorithm (and move tracking) is very simple.
I am introducing syncrclone
More detail in the readme but what I am looking for in beta testing:
- Windows Support -- I have no experience with Python and windows. I tried to be very cognizant of expected issues but it hasn't been tested in the slightest with Windows. Likely minor development is also needed (including a catch for adding inodes since they do not exist).
- Links. syncrclone defers link handling to rclone but it may cause an issue. I know there is an issue with the
'inode'
options and links- Usefulness of logging. Too verbose? Not enough?
- Automated runs and locks. I've tested the locking but not with constantly running (e.g. via crontab) and dealing with it
- Clarity of the setup docs. This is hard for me to judge as I wrote it so I know what to expect. Is local mode clear?
- Missing features?
- What is in scope and should be included? One thing I didn't port over from PyFiSync was syncrclone being able to execute shell commands pre and post (pre can be done via the config script but not post)
- When to use
rclone_flags{A/B}
. Currently just listing and one-sides local-to-remote copies (e.g. file lists, non-transfer-actions, and logs). What about remote-to-remote?
And features:
- Configurable rename tracking even for remotes with incompatible hashes
- Configurable file comparison and conflict resolution.
- Entirely non-interactive
- All opperations that modify/delete files include a backup
- Robust to interruption
- Locking system
- Dry-Run mode
- Extensive tests
- Directly uses rclone's powerful filtering
Check it out and let me know: syncrclone