dsync [-n] [-q | -d] [-x pathname]... pathname pathname
dsync [-n] [-q | -d] [-x pathname]... [-s pathname]
dsync [-n] [-q | -d] [-x pathname]... [-m pathname] pathname
dsync -h
dsync -v
(See the OPTIONS section for alternate option syntax with long option names.)
dsync synchronizes contents of two directories. dsync remembers state between invocations and tries to track and reconcile changes between successive runs and between independent synchronizations of multiple targets (local and backup, local and remote, etc.).
While dsync will normally consider bidirectional changes, it may also mirror one directory to another if a master directory is specified. Such may be used for backups or to force conflict resolution.
Alternatively, dsync may be invoked to simply update state of a given directory in order to reset state from a previous run or to update a given directory to current.
Options
To synchronize a local Documents directory and a remotely mounted analog, invoke via:
sudo dsync ~user/Documents /Volumes/user/Documents
assuming that the user has identically named accounts on both machines and that the user's remote home directory was mounted locally.
Perl 5.6, Getopt::Long, Fcntl, POSIX, DB_File, File::Basename, MacOSX::File, MacOSX::File::Copy, MacOSX::File::Info
perl(1)
This is an early release; it has not been tested comprehensively.
Send bug reports, questions, and requests to dsync@ayradyss.org.
Mac OS X obfuscates some file attributes and prevents updates to volumes mounted via AFP. Dsync requires the --remote hint in order to ignore fallacious attributes and to skip operations that would otherwise fail. A future version may support a special ``snapshot restore'' mode that will allow Dsync to properly reset attributes when invoked locally after a remote synchronization run.
Igor S. Livshits <dsync@ayradyss.org>
Copyright (C) 2006 Igor S. Livshits
Use and distribute this tool as per the Artistic License