Bug 3653 discussed how "file has vanished" warnings can be silenced. Code changes did not make it in, but Matt McCutchen wrote the rsync-no-vanished bash wrapper script, whose final version seems to handle it correctly, using advanced bash features:
ignoreout='^(file has vanished: |rsync warning: some files vanished before they could be transferred)'
set -o pipefail
rsync "$@" 2>&1 | (egrep -v "$ignoreout" || true)
if [ $a == $ignoreexit ]; then
What is missing is to make that script accessible to users. I suggest to include it in the support directory in the rsync tarball.
Good idea -- thanks.
IMHO, this's wrong by design solution. There should be an option in rsync itself, but not a hacky wrapper.
BTW. couldn't there be a situation, that rsync got two errors (one of which is "24") and exited with the exitcode "24", that will be suppressed by the script. So the other error will be unnoticed?
Rsync doesn't exit with error code 24 if a more important error happens (which is basically any other error).