Current version: 0.4.0 (25 May 2025) [src]
continual-sync
is a tool to synchronise one directory
tree with another, with rsync
, using the inotify
mechanism to keep the copy constantly up to date very efficiently by making
rsync
do as little work as possible.
It can be used to mirror directories between machines asynchronously, for instance backing up your local files to an off-site file server.
The continual-sync
tool is intended to be used in the
background - set up once and forgotten about. For example, it can be used
to back up hundreds of Linux desktops to a central server with no user
interaction, and with changes appearing on the central server within minutes
of the originals being changed on the desktop.
The package also includes the "watchdir
" utility, which writes
change notification files when the contents of a directory are altered.
Note that this software will only run on Linux.
This software is distributed under the terms of the GNU General Public License version 3 or later.
- Source code: continual-sync-0.4.0.tar.gz [signature]
- Manual for continual-sync
- Manual for continual-sync config
- Example config file (introductory)
- Example config file (large)
- Manual for watchdir
- Git repository (at Codeberg)
- Issue tracker (at Codeberg)
To install continual-sync
, follow these steps:
curl -O https://ivarch.com/programs/sources/ continual-sync-0.4.0.tar.gz tar xzf continual-sync-0.4.0.tar.gz cd continual-sync-0.4.0 sh ./configure make sudo make install
Comments, bug reports, and patches can be sent using the Issue tracker, or through the Contact Form.
News
0.4.0 - 25 May 2025
- feature: new watchdir “–suffix” option to give change files a predictable suffix (#12)
- feature: new watchdir “–only-files” and “–only-directories” options to narrow the scope (#13)
- feature: new watchdir “–null” option to write null-delimited change files (#14)
- fix: the continual-sync startup script and systemd unit will now create the run-time state directory (#1)
- fix: watchdir will now exit when the watched directory is deleted
- fix: corrected a compilation failure on non-glibc systems like Alpine Linux
- cleanup: corrected installation behaviour when a different prefix is being used
- cleanup: removed redundant EOF markers from source files
- cleanup: new “
make analyse
” to run “splint
” and “flawfinder
” on all source files (#4) - cleanup: addressed many of the warnings from
“
splint
” - cleanup: added first tests to the new
“
make check
” test suite (#5) - docs: renamed the documentation directory
- docs: removed redundant documents
- docs: standardised the formatting of the manuals
0.1.0 - 20 August 2023
- Refactored package structure to better conform to GNU standards
- Updated
--help
and--version
output to conform to GNU standards - Switched license to GPLv3+
- Removed direct support for Red Hat Enterprise Linux
- Added systemd unit and sysvinit script
- Moved
continual-sync
to system binary directory - Create the parent directories of log, status, and PID files automatically
- Exit and restart a subprocess if its exclusions file disappears due to temporary directory cleanup
0.0.6 - 4 September 2021
- Added an “ignore vanished files” option
- Updated the init script to create /var/run/continual-sync on startup
0.0.5 - 12 December 2014
- repackaged as an Open Source project with permission from my employer
0.0.4 - 12 August 2014
- added “working directory” field to status file
- check working directory still exists after every sync attempt, as well as when a watcher exits
0.0.3 - 7 August 2014
- added “current action” field to status file
0.0.2 - 6 August 2014
- added “temporary directory” parameter
- set default $PATH if one is not set in the environment
- record rsync errors in log file
- added “status file” parameter
0.0.1 - 2 August 2014
- initial release