ood is a tool I wrote to synchronise files between different hosts. It can be used to achieve the functionalities (among others) of unison, rdist, rsync or cfengine (the copy rule) without the need to have your hosts connected.


The purpose of ood is to help maintain directory trees identical between two hosts, not necessarily connected through a network. I wrote it to automate the synchronisation of files between my office and my home machines, but, as we will see, ood can be used in other situations when you want to keep track of file changes.

In a typical working day, a user uses numerous files: source code, mail folders, spreadsheets... He may change their contents but also create new documents, rename or delete others. At the end of the day, the manual synchronisation of all these files turns out to be impossible. A file can easily be forgotten, which can lead to various problems, as different versions might appear. The workaround is to copy all the files, which is time consuming and impractical with large directories.

I wrote ood to automate the synchronisation in a simple and elegant way. I chose this name as it always knows which files are "out-of-date". It operates by keeping track of the files modification date and stores them in a specially formatted file, called the timestamp file. The timestamp file is a plain text file with the names of the files and directories that ood maintains and their associated timestamp. By comparing the timestamp stored in the timestamp file and the actual file modification date, the program can deduce which files have been modified, added or deleted since the timestamp was recorded. It uses this information to create an archive file, a compressed tar file containing the timestamp file and out-of-date files. The archive file can be copied to a floppy disk or a tape and restored on other machines. The use of the intermediate archive file makes it possible to synchronise files between hosts that do not have a permanent connection or even, none at all.

More documentation is provided with the sources.


Get it from here.

Stéphane Billiart -20041202