Hi I did the following simple test on Solaris platform to find out the rsync didn't sync differential update of source file but instead transferred the **whole** file. It is working fine on Linux platform (tested on Redhat). Appreciate prompt assistance from anyone.. thanks tested on rsync versions : > rsync version 2.6.5 protocol version 29 > rsync version 2.6.6 protocol version 29 1) hudson% rsync --progress --stats -avz a.tar /tmp/ building file list ... 1 file to consider a.tar 95647 100% 1.05MB/s 0:00:00 (1, 100.0% of 1) Number of files: 1 Number of files transferred: 1 Total file size: 95647 bytes Total transferred file size: 95647 bytes Literal data: 95647 bytes Matched data: 0 bytes File list size: 64 File list generation time: 0.003 seconds File list transfer time: 0.000 seconds Total bytes sent: 95044 Total bytes received: 42 sent 95044 bytes received 42 bytes 190172.00 bytes/sec total size is 95647 speedup is 1.01 2) hudson% rsync --progress --stats -avz a.tar /tmp/ building file list ... 1 file to consider Number of files: 1 Number of files transferred: 0 Total file size: 95650 bytes Total transferred file size: 0 bytes Literal data: 0 bytes Matched data: 0 bytes File list size: 64 File list generation time: 0.002 seconds File list transfer time: 0.000 seconds Total bytes sent: 80 Total bytes received: 20 sent 80 bytes received 20 bytes 200.00 bytes/sec total size is 95650 speedup is 956.50 3) hudson% echo aa>>a.tar hudson% rsync --progress --stats -avz a.tar /tmp/ building file list ... 1 file to consider a.tar 95650 100% 1.07MB/s 0:00:00 (1, 100.0% of 1) Number of files: 1 Number of files transferred: 1 Total file size: 95650 bytes Total transferred file size: 95650 bytes Literal data: 95650 bytes Matched data: 0 bytes File list size: 64 File list generation time: 0.001 seconds File list transfer time: 0.000 seconds Total bytes sent: 95047 Total bytes received: 42 sent 95047 bytes received 42 bytes 190178.00 bytes/sec total size is 95650 speedup is 1.01
Local transfers default to --whole-file because that makes the transfers faster (it decreases disk I/O and sends more literal data when the transfer link is not the limiting factor). If you just want to test how rsync works locally, use --no-whole-file to enable the incremental update algorithm. Also, using -z on a local transfer is usually a waste of CPU, so only use it for testing purposes.