I have this daily archiving job
rsync -a --ignore-existing --remove-source-files src dst
The intent is to copy files to an archive and remove them from the source when done.
I have one very important contraint: don't overwrite any file in the destination if it already exists and is different from the one in the source, because it means something is wrong.
Most of the time what goes wrong is the rsync job is interrupted. Not a big deal, the next day's run will recover, right? Wrong. Sadly, when it runs again the next day it doesn't transfer because of the --ignore-existing, even though the files on the destination are identical to the files on the source.
The simplest solution would be if rsync had an option like --ignore-existing-only-if-different, but it doesn't. I can't relax my constraint either. So, right now I'm stuck manually recovering the rsync when it fails.