--itemize-changes not recursive (not printing created files inside created directories)

Richard Michael rmichael at edgeofthenet.org
Tue Dec 17 16:19:15 MST 2013


Hello list,

Using rsync  version 3.1.0pre1  protocol version 31.PR14, I ran this
command to sync two local filesystems:

rsync -rvvctpgonh --itemize-changes --progress --stats
--log-file=/root/rsync.log /mnt/ntfs/vmdk/ /mnt/ntfs/restore/

-r = recursive
-vv = verbose
-c = checksum compare
-t = transfer modification times
-p = set destination perms to match source
-g = set destination group to match source
-o = set destination owner to match source
-n = dry run (should cause --progress to be meaningless, but harmless)
-h = human readable output


Output includes this summary:

2013/12/11 16:35:14 [3349] Number of files: 443,967 (reg: 419,427, dir: 24,540)
2013/12/11 16:35:14 [3349] Number of created files: 2,581 (reg: 2,511, dir: 70)
2013/12/11 16:35:14 [3349] Number of deleted files: 0
2013/12/11 16:35:14 [3349] Number of regular files transferred: 2,744
2013/12/11 16:35:14 [3349] Total file size: 560.66G bytes
2013/12/11 16:35:14 [3349] Total transferred file size: 196.26G bytes
2013/12/11 16:35:14 [3349] Literal data: 0 bytes
2013/12/11 16:35:14 [3349] Matched data: 0 bytes
2013/12/11 16:35:14 [3349] File list size: 589.75K
2013/12/11 16:35:14 [3349] File list generation time: 0.047 seconds
2013/12/11 16:35:14 [3349] File list transfer time: 0.000 seconds
2013/12/11 16:35:14 [3349] Total bytes sent: 20.97M
2013/12/11 16:35:14 [3349] Total bytes received: 1.36M
2013/12/11 16:35:14 [3349] sent 20.97M bytes  received 1.36M bytes
2.28K bytes/sec
2013/12/11 16:35:14 [3349] total size is 560.66G  speedup is 25,111.56 (DRY RUN)


--itemize-changes has output 70 lines pertaining to created
directories (matches the summary output above), similar to this:

2013/12/11 13:54:23 [3349] cd+++++++++
$RECYCLE.BIN/S-1-5-21-947408474-2404634453-201028329-3641/

$ awk '$4 ~ /^cd/' rsync.log | wc -l   # ==> 70

However, the log file contains 0 occurrences of '>', '<'  or 'cf++++++++' .


A bit of arithmetic indicates exactly the "Number of regular files
transferred" ( = 2,744 from stats output) are missing from the log:

$ wc -l rsync.log # ==> 441279 ( - 56 lines of stats/info + 2,744
unreported files = 443967 files/dirs, as summarized)


Questions:

1/ Why doesn't --itemize-changes report "cf+++++++++" lines for files
contained inside created directories ("cd+++++++")?  For example, I
expected output similar to: (faked output)

2013/12/11 13:54:23 [3349] cd+++++++++
$RECYCLE.BIN/S-1-5-21-947408474-2404634453-201028329-3641/
2013/12/11 13:54:23 [3349] cf+++++++++
$RECYCLE.BIN/S-1-5-21-947408474-2404634453-201028329-3641/desktop.ini


2/ Of the 2,744 transferred files, 2,581 are created (I expect each,
dir or file, as a "c[fd]+++++++") ; this leaves 163 transferred files,
presumably because they were changed (but not created), also not
reported.  Why were they not reported?


Ultimately, I would like a list of all differences, both file and
directory, sent to the client.  I suspect --itemize-changes is a bit
archaic, and I should be investigating --info= customized output.

Thank you!

Regards,
Richard


More information about the rsync mailing list