对 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
将使用不如 NTFS 准确的 FAT 时间戳(在时间戳中使用 2 秒粒度)。在 Linux 文件系统和 NTFS 之间进行复制时,我还发现这个很有用。
我通常使用类似的东西
robocopy d:\workdir y:\workdir /TEE /LOG+:d:\update.log /MIR /R:5
它将用 y:\workdir 镜像 (/MIR) d:\workdir,将它所做的日志附加到 d:\update.log (/LOG+d:\update.log) 将输出写入控制台和日志文件 (/TEE),并在继续下一个文件之前尝试每个文件 5 次。
它也适用于 UNC 路径。
如果您有大量需要在多台 PC 上同步的文件,那么 robocopy 就是您的朋友。