autorsync
v1.45.215
Published
Life syncronization between two hosts using fswatch and rsync.
Downloads
13
Maintainers
Readme
AutoRSync
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 fswatch|rsync
.
Why
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.
Usage
The syntax is similar to rsync
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.
Prerequisties
bash
version 4 or later,rsync
version 3 or later,fswatch
,ssh
,perl
(todo rm dependancy).pgrep
andpkill
from package psmisc
brew install bash coreutils rsync fswatch perl findutils gnu-sed
To run ./test-autorsync.bash also need brew install tree pstree
Installation
Manual
( 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
ToDo
Alternatives
- docker-sync
- 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
License
MIT License
Copyright (c) 2019 Ivan Kuvaldin aka "kyb"