How does rsync differ with scp in terms of transfer speed, maximum transfer size etc ? Or they very similar ? And in what type of scenarios do we need to use these commands ?


There are two main differences (that I can think of) between rsync and scp.

Before a file is transferred rsync takes the checksums of the file (MD5 and adler-32 I believe) and sends them to the receiver. After a file is transferred the receiver verifies the data integrity using those checksums. scp does not have such mechanism. scp uses ssh to transfer the data and although ssh uses checksums on the packet level that's a different story (I believe the default rsync behaviour is also to use ssh for transfers).

Another difference is what happens during a transfer retry. While scp will ignore any partially transferred set of files and overwrite them on the receiving end, rsync is more clever than that. Rsync will check the destination for any files present and if their signature matches that of the files on the sender side it will not retransmit these files. It might be possible to overwrite this behaviour but I am not entirely sure.

cheers, n

  • I think Rsync sometimes tries to be smarter than it should; if you have a large file...a 200 meg video, for example...and you edit maybe 5 meg of it, rsync will (in a network copy) compare and transfer just that altered 5 meg. BUT if I did it with a mounted share, as in mounting a windows share and doing an rsync from directory A to directory B, rsync will copy the entire 200 meg. I was later told that only if it is transferring over the network will it do the differential copy, which speeds up the transfer job. – Bart Silverstrim Oct 25 '10 at 14:33
  • (in other words because I mounted the share in the filesystem, it treats it like a local drive-to-drive or volume-to-volume sync rather than machine-to-networked-machine sync) – Bart Silverstrim Oct 25 '10 at 14:34
  • 3
    @Bart: You can use the --no-whole-file option to force rsync to use the delta-transfer algorithm on local-to-local copies. – Steven Monday Oct 25 '10 at 14:56
  • 1
    @Steven-Thanks for that switch info. It's still something to keep in mind when assuming default behavior, though. That was the part that catches me off guard at times! – Bart Silverstrim Oct 25 '10 at 14:58
  • 1
    Another difference depends on how you use rsync. If you use rsync to communicate with a system running an rsync daemon there is no overhead for encryption. Everything will be sent in the clear. – Zoredache Oct 25 '10 at 16:53

scp(secure copy): copy the files one computer to another (or) local computer. ex: scp -> but scp is overriting files agin and again. example:i have files(f1,f2,f3,f4) on source_file directory.again i copy file on same destination(scp destination_file is(f1,f1,f2,f2,f3,f3,f4,f4) overriring. but rsync is skip the files already copied files. ex: rsync time) o/p:destination_file(f1,f2,f3,f4) ex: rsync time) o/p:destination_file(f1,f2,f3,f4).not override in this command

Your Answer

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

Not the answer you're looking for? Browse other questions tagged or ask your own question.