I use

rsync --stats --info=progress2 --remove-source-files --files-from=files -rtz user@myhost:/ foo

to move a list of files from myhost to foo.

The manpage for rsync says this about --remove-source-files:


    This tells rsync to remove from the sending side the files (meaning non-directories) that are a part of the transfer and have been successfully duplicated on the receiving side.

    Note that you should only use this option on source files that are quiescent. If you are using this to move files that show up in a particular directory over to another host, make sure that the finished files get renamed into the source directory, not directly written into it, so that rsync can’t possibly transfer a file that is not yet fully written. If you can’t first write the files into a different directory, you should use a naming idiom that lets rsync avoid transferring files that are not yet finished (e.g. name the file "foo.new" when it is written, rename it to "foo" when it is done, and then use the option --exclude='*.new' for the rsync transfer).

    Starting with 3.1.0, rsync will skip the sender-side removal (and output an error) if the file’s size or modify time has not stayed unchanged.

My problem is that I’m now missing a bunch of files which are removed from myhost (I know they were there) but are not on foo.

I had connection problems the last days so it is possible that rsync ran into some timeout but the manpage clearly says "...and have been successfully duplicated on the receiving side..."

Any idea what could have happened?

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.