A well proven way is to use rsync
.
For more than a few nodes it would be better to create a script (with node addresses/or names, list of folder synchronized and maybe a kind of parameters.
If a small delay in sync doesn't make a problem, than I would put a line in crontab
to run the script in an interval (e. g. every hour). It's good to consider number of files, their size and time needed to copy new ones.
If the delay might be a problem, there are some better, but much more complicated solutions - network share, distributed filesystem etc.
A script example:
#! /bin/sh
#don't put our own ip/name here!
nodes="1.2.3.4 10.20.30.40 10.0.0.1"
folder="/data/work"
for node in $nodes ; do
rsync -aqW $folder/ $node:$folder
done
/opt/node_storage/
for example. That way all nodes have access to the same content without having to jump through elaborate — and often unsatisfactory — sync loops.