I've done a reasonable amount of research on the issue and have decided to go with robocopy.
Why did I choose robocopy:
- Already installed on Windows Vista/7.
- Command line so easy to configure for batch file.
- Logging and output to console.
- Handles path names greater than 260 characters.
To create the first backup I used the DLink DNS-313's USB port with the following command:
robocopy G:\Data F:\Data /e /dcopy:T /xj /log:BackupNAS-2008.log /tee /v /np
- Source folder G:\Data
- Destination folder F:\Data
- /e Copies subdirectories. Note that this option includes empty directories.
- /dcopy:T Copies directory time stamps.
- /xj Excludes junction points, which are normally included by default.
- /log:BackupNAS-2008.log Writes the status output to the log file (overwrites the existing log file).
- /v Produces verbose output, and shows all skipped files.
- /np Specifies that the progress of the copying operation (the number of files or directories copied so far) will not be displayed.
/np switch is very important if you are using the /log switch. Without /np the log file will be cluttered with each % up robocopy displays to the console. This is a real shame and quite frankly stupid.
After approximately 9 hours of copying (remember I have approximately 450GB to copy) and best I can tell 90% complete Windows Update kicked in and decided to reboot my machine. No problems I just ran the same command again and robocopy compares the two directories (and sub-directories) and only copies what is missing/different.
After reinstalling the DNS-313 as a network drive the command line will change to:
robocopy \\nas-313\Data F:\Data /e /dcopy:T /xj /log:BackupNAS-2008.log /tee /v /np /purge /z
The new switches are:
- /z Copies files in Restart mode. This is a good switch to use when copying across a network as it will handle any network interruptions.
- /purge Deletes destination files and directories that no longer exist in the source. /e /purge can be replaced with /mir.
The only real negative so far is the log file. It provides the required information but it is not very well laid out. I think they would have been better using a standard log file format then you could easily import it into a database/excel for review.
To improve USB external drive performance turn on write caching.
- @Mike Fitzpatick suggested rsync. I didn't try it as its history is with linux and I often find documentation for linux programs lacking.
- robocopy does have a GUI via RichCopy.
- SyncToy. Tried it. Looks good but it would say there were errors but not probably describe what they were.