synctree - synchronize directory trees.
synctree [-iuf] [[user1@]machine1:]dir1 [[user2@]machine2:]dir2
Synctree synchronizes the directory tree rooted at dir2 with dir1. It
walks recursively through both trees, and deletes and adds files in dir2
to make it equal to dir1. Mode, owner and group are set for each file
unless the -u flag is given. In its normal mode of operation, synctree
will ask if it may delete or add directories assuming that you don't want
to. Non-directories are simply deleted or added, but synctree will ask if
it needs to update a normal file with a default answer of 'y'. Simply
typing return will choose the default answer, typing end-of-file is like
typing return to this question and all other questions.
You can specify a hostname and user-id to be used to access dir1 or dir2.
Synctree will use rsh(1) to run a copy of itself on the remote machine.
The call interface mimics that of rcp(1), but you can use more than one
user@machine prefix if you want to make things really interesting.
Hard links are enforced, an update is done by first deleting the old file
so that links to unknown files are broken. Links to files within dir2
will be restored.
If either directory contains the file .backup, then this file will be
used as an alternate inode table. This allows one to make a backup copy
of a file tree full of special files and differing user-ids on a remote
machine under an unpriviledged user-id.
-i Ask for permission (with default answer 'n') to delete or add any
file or directory.
-u Only install newer files, i.e. merge the directory trees.
-f Don't ask, think 'yes' on any question.
remsync(1), cpdir(1), rsh(1), rcp(1), perror(3).
Messages may come from three different processes. One named "Slave"
running in dir1, one named "Master" running in dir2, and synctree itself
in a mediator role. The mediator will also perform the task of either
the master or the slave if one of them is running locally. You need to
know this to interpret the error messages coming from one of these
processes. The messages are normally based on perror(3). Failure to
contact a remote machine will be reported by rsh. Synctree should have a
zero exit status if no errors have been encountered.
Directory dir2 will be created without asking.
The master and slave processes get their error output mixed up sometimes
The local and remote machine must use the same file type encoding.
The link replacement strategy may lead to lack of space on a small
device. Let synctree run to completion and then rerun it to pick up the
Letting the local process keep its "synctree" name may be a mistake.
It talks too much.
Kees J. Bot, (email@example.com)