SYNK(1) General Commands Manual SYNK(1)

synksynchronize files between multiple hosts

synk [-sv] [-f file] [-p port] [-h host] file..

synk will connect to the given peers, retrieve the sha512 / mtime of file on each host and, if the hashes differ at some point, rsync(1) the most recent version from the host (master) to all other peers. In case the master is not localhost, ssh(1) will be used to spawn a remote rsync(1) command between the master and each slave (except for localhost as it's not needed).

When synk starts up, it reads the peer list from a configuration file, typically synk.conf(5), unless peers are specified on the command line.

Enable server-mode. This will make synk listen for incomming connections on the address given by host and port. This is used internally by synk and should never be called by the user.
Increase verbosity. There are two levels of logging, as follow:
  1. print out informations about peers and files (VERBOSE)
  2. detail all actions taken (DEBUG)
The logging level can be increased by passing the verbose flag (-v) again. Each level includes the messages of the previous ones. synk will log informative messages to stderr.
Have synk use file as the configuration file, instead of the default /etc/synk.conf.
Have the next peer listen on port for incoming connections, and connect to it via this port as well.
Add host to the list of peers to synchronize. Using this flag will prevent synk from parsing synk.conf(5). file with. Peers are added as they are parsed on the command line, which means that you can have different host listen on different port by calling the -p flag before each -f flag (see EXAMPLES for use cases).

default synk configuration file

Synchronize a file between all peers listed in /etc/synk.conf:

synk /etc/hosts

Synchronize a file with two peers, using different ports for each:

synk -p 1234 -h -p 5678 -h $HOME/.profile

synk.conf(5), rsync(1), ssh(1)

Willy Goiffon <>

2016-09-08 POSIX.1-2008