Rdist: Rdist is a very old tool, but unlike other tools that have withstood the test of time, it is neither perfect nor very modular. Rdist is used to replicate directories across hosts. The main use of rdist is to run it on a "distfile" --- a script in the language of rdist. An example distfile is: HOSTS = ( host1.domain host2.domain ... # a bunch more hosts hostN.domain ) DIR = /rdist/iX86-Linux-2.2 ${DIR} -> ${HOSTS} install -oremove,compare /; except ${DIR}/tmp; except ${DIR}/etc/passwd; ... # a bunch more files that should be different except ${DIR}/etc/shadow; This distfile identifies a list of hosts (host1 - hostN), and a local directory (/rdist/iX86-Linux-2.2). It then tells rdist to "push" the contents of that directory onto the root directory ("/") of the list of hosts. It also tells it remove any extraneous files it should find on the remote machines, and to use binary comparison to decide whether or not to update a file on the remote host (normally it just looks at the last modification time of the file). Then, there is a list of files not to update on the remote machine. A distfile like the above could be used to replicate a site's standard software installation on a list of remote machines. One of the strengths or rdist is that it can be performed in parallel --- rdist can open connections to more than one machine at a time when "installing" software. A discussion of rdist could go on for a very long time. Please read the manual page for it. Among the more interesting things that it can do are: * When it updates a file, it can run a command * Compare the local and remote owner using UID/GID or names * Omit a list of files by regular expression, instead of an explicit listing of them