大力推荐robocopy。我用它来做你提到的那种事情。
例如,我目前正在我的服务器上运行5个robocopy会话,其中我正在在3个远程服务器之间复制约60GB的文件,我通过CheckPoint VPN连接到其中两个,另一个是通过JungleDisk映射的Amazon S3空间。
我正在与全国另一端的同事合作。他今晚稍后将登录到相同的服务器并运行类似的robocopy批处理文件以下载我当前正在上传的所有更改。
“杀手级应用程序”功能是,robocopy将保留文件日期/时间戳,并且默认情况下仅复制不同的文件。因此,您可以将其指向一个巨大的目录树,只有更改的文件才会被复制。
以下是做这种事情的一些有用提示...
/MIR 镜像一个目录树,因此将删除并添加
/R:10 告诉robocopy在放弃之前尝试10次复制文件。默认值为1,000,000次
/LOG+somefilename.log 将屏幕输出附加到somefilename.log,如果需要,将创建它。
/XD dir1 dir2 将忽略复制中名为dir1或dir2的任何目录。可以使用通配符。
/FFT 将使用FAT时间戳,其精度低于NTFS(在时间戳中使用2秒的粒度)。我在Linux文件系统和NTFS之间复制时也发现这个很有用。
我通常会使用类似的东西
robocopy d:\workdir y:\workdir /TEE /LOG+:d:\update.log /MIR /R:5
这将使用(/MIR)命令将d:\workdir与y:\workdir进行镜像同步,将操作记录追加到d:\update.log文件中(/LOG+d:\update.log),并同时输出到控制台和日志文件(/TEE),在移动到下一个文件之前尝试每个文件5次。
它还支持UNC路径。
如果您有大量需要在多台计算机之间进行同步的文件,则robocopy是您的好帮手。