Question

I use inotify-tools and unison to synchronize folders between machines. Because I have a large folder to synchronize, I just simply write an inotifywait script to do the job automatically. Is it sensible to let inotifywait to monitor the subdirectories of the large folder to gain a better performance?

Was it helpful?

Solution

You should get better performance if you ditch inotify-tools and just use unison's native support for watching your folders for changes. By using inotify-tools and then calling unison when a change occurs, unison has to "re-find" the change before it syncs. You could instead add the line repeat = watch to your unison profile and unison will run continually and sync whenever there is a change. It detects the change with its own file-watcher utility unison-fsmonitor that communicates directly with unison.

For more information, check out the latest changelog for unison 2.48.3 with major changes to unison-fsmonitor.

OTHER TIPS

The unison-fsmonitor is not provided by ubuntu package until now:

If you want it fast locally


UNISON_VERSION=2.51.2
echo "Install Unison." \
    && apt install wget ocaml
    && pushd /tmp \
    && wget https://github.com/bcpierce00/unison/archive/v$UNISON_VERSION.tar.gz \
    && tar -xzvf v$UNISON_VERSION.tar.gz \
    && rm v$UNISON_VERSION.tar.gz \
    && pushd unison-$UNISON_VERSION \
    && make \
    && cp -t /usr/local/bin ./src/unison ./src/unison-fsmonitor \
    && popd \
    && rm -rf unison-$UNISON_VERSION \
    && popd
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top