AutoRSync is a live file syncronization utility written in bash using rsync and fswatch.
It is able to monitor changes and synchronize files rapidly from one host to another.
Briefly, this Bash script is a conglomerate of
This utility was created as alternative to Docker volumes because of very poor performance on MacOS.
It is very useful when editing code on host but build and run inside a Docker container.
On MacOS and Windows Docker volumes are very slow because of virtualization. Writing files in docker container back to host's filesystem gives huge performance penalty – about 45-60 times slower than native.
AutoRSync gives ability to edit files on one host and keep updated mirror in another one. Comparing to docker-volumes autorsync scheme consumes two times more space, but half-hundred times faster.
The syntax is similar to
autorsync /local/path/ remote_host:/target/path/
Trailing slash in SRC is important. See stackoverflow.com.
ToDo write here more detailed examples and explanation
See also usecase-docker.md about how to configure Docker container.
bashversion 4 or later,
rsyncversion 3 or later,
perl(todo rm dependancy).
pkillfrom package psmisc
brew install bash coreutils rsync fswatch perl findutils gnu-sed
To run ./test-autorsync.bash also need
brew install tree pstree
( cd /usr/local/bin && curl -LO https://gitlab.com/kyb/autorsync/raw/artifacts/master/autorsync && chmod +x autorsync ; )
or use download link
NPM (node package manager)
npm install --global autorsync
or the same npm i -g autorsync
- Docker NFS volume (still slow)
- use SAMBA (not fast enough to build Linux)
Inspired by article How to speed up shared file access in Docker for Mac by Sebastian Barthel
Copyright (c) 2019 Ivan Kuvaldin aka "kyb"