I took a few extra minutes today, while copying a very large file across the network, to look at better file copy options.
Ideally, I was looking for something that can:
- resume a broken/failed copy. Bonus points if it can copy entire directories, picking up where it left off, even if it left off in the middle of a file.
- compress contents while copying to make better use of the network resources. I assume this would require a service listening on the other end of the copy. Therefore, this would best be done by a native windows utility.
- show progress while copying.
I didn’t actually decide on anything, but I did get reminded about robocopy, which is a pretty good option. For more options, and a rather good camparison of 10 or so file copy utilities, see RoboCopy vs RichCopy vs SyncBack vs EMCopy vs XXCopy vs XCopy vs KillCopy vs FastCopy vs Rsync vs TeraCopy vs 7zip.
Robocopy for Windows Server 2003 can be downloaded from Windows Server 2003 Resource Kit Tools from Official Microsoft Download Center. Additionally, I found Robocopy and a Few Examples - TechNet Articles - United States (English) - TechNet Wiki to be a good source of examples I used for some experimentation.
For a discussion leading to the suggestion to disable “Large Send Offload (LSO)” on the source side of the copy, see Local Area Network : How to fix slow LAN transfer speed of files in Windows
None of these file-copy utilities offer over-the-wire compression. We need something with a listener on the other end of the copy.
Consider WinSCP - Free SFTP and FTP client for Windows. Does this offer the same abilty as scp+tar offers in Linux?
Using SSH/SCP on Windows may help with using winscp with compression on Windows.
Also, try PuTTY’s pscp utility.
A couple more hints here (windows server 2008 - Compressed network file copy - Server Fault) including a tip on using 7-zip to do the compression.
Also, consider having mssql do the compression during the backup. But, this is not supported until SQL Server 2008.
A bunch more insight, but only a little bit for Windows, see How to transfer large amounts of data via network.
Consider using Syncrify or DeltaCopy (probably DeltaCopy, because it’s open-source and free) Difference between Syncrify and DeltaCopy. For DeltaCopy, see DeltaCopy - Rsync for Windows. As expected, it does run a service on the listening end of the connection. Actually, I think it’s running the service on both ends of the connection.
ZipPipe and unZipPipe are 2 perfect utilities for this. Definitely have to look at source code before trusting these though. [ON THE FLY COMPRESSION/UNCOMPRESSION IS EASY ON UNIX, BUT ALSO ON WINDOWS | Bienvenido/Welcome](https://jcarlossaez1.wordpress.com/2005/10/21/on-the-fly-compressionuncompression-is-easy-on-unix-but-also-on-windows/) |