Rsync Error 23: Can I tell which files were not transferred

rsync

I ran sudo rsync -va --progress from the root of one external drive to a folder on another external drive. The reason is that the source drive has an error-ful NTFS and I don't have access to a Windows PC to repair the NTFS.

10 hours later it said:

sent 608725204596 bytes  received 19365712 bytes  15902210.53 bytes/sec
total size is 608586212274  speedup is 1.00
rsync error: some files could not be transferred (code 23) at /SourceCache/rsync/rsync-42/rsync/main.c(992) [sender=2.6.9]

I saved the entire terminal output. At the beginning, there are a few hundred Input/output error (5) for files I actually don't need totaling roughly 2GB. OSX Finder "disk usage" tells me the source is 617 billion bytes, not 608 as in the above report.

Questions:

  1. Does the first portion of the verbose output (building a file list) definitely say Input/output error (5) for EVERY file that won't be copied?
  2. Does code 23 mean that all the files except the Input/output error (5) ones were successfully copied?

Best Answer

23 only means (from the man page):

23 Partial transfer due to error

For everything that could not be transferred, you'll get an error message. Note that the error messages could be about opening or reading directories, so you won't necessarily see an error message for each file that could not be transferred.

If your source has not changed, you can run the rsync again with -n to see what it would transfer this time without actually doing the transfer.

About the byte difference, rsync gives you the size of the files (how much data can be read from them). Are you sure Finder doesn't tell you the disk usage instead?

Also note that NTFS can store data in alternate streams or attributes of the files, and rsync will typically not transfer (is not aware of) those (and that can account for a lot as well).