--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