Python script for shortening rsync commands that are used frequently enough to be an annoyance. A lazy rsync, if you will.
mysync.py [target] [location] [direction] [behavior] [additional rsync flags]
The target and location arguments are shorthand aliases defined in the configuration file (which will be created from a template the first time that the script is run). See that file for instructions on how to set it up, or the original blog post I wrote on it.
- A path that exists both in the current location (i.e. the machine on which the script is being run) and at somewhere else, i.e. an external volume or remote host.
- A "container" for targets, i.e. volume or host.
- Pull or push; pull updates the local copy according to content on the remote, push is vice versa.
- Any of the following keywords (or part of one of them that uniquely matches one of them):
- Flags -c --delete-after; Makes the target a 100% carbon copy of the source, using checksum difference as the criterium for transferring rather than timestamp
- Flags --delete-after --ignore-existing --existing; only deletes files in the target that are not in the source, and do nothing else (remove deleted files).
- Flags --ignore-existing; Skip files that exist already in target, copy new files.
- Flags -u; Update all files on the target, skip files that have been touched more recently on the source, and copy new files.
- Flags -u --existing; Update files that exist in both target and source such that the source copy is newer, but don't copy new files from the source.
- Flags --delete-after; Make the target a 100% carbon copy of the source, using difference in file size or timestamp as the criterium for transferring.