ROBOCOPY 文档让我应接不暇。我想将本地文件增量备份到网络驱动器 (M)。我希望它尽可能快地运行,没有日志文件,屏幕上的文本尽可能少。我的文件都位于一个文件夹 (MyFolder) 中的某个位置,该文件夹有许多嵌套的子文件夹。“增量”的意思是“仅复制新内容或更改的内容”。我不想删除目标中的任何历史文件,但如果我更改了文件,我只想要较新的版本。如果我没有更改文件,那么我不想将其复制到现有的备份文件上。以下是否正确?(运行 Win7 Enterprise。)
robocopy C:\MyFolder M:\MyFolder /z /np /xo /e
请不要建议除 robocopy 之外的任何东西。我不允许安装任何东西。而且我不在乎安全问题。我有专门的人来做这件事(无论我是否需要他们)。;-)
答案1
几年来我一直成功使用以下脚本的变体:
robocopy C:\source M:\destination /MIR /FFT /R:3 /W:10 /Z /NP /NDL
参数解释
该
/MIR
选项(相当于/E /PURGE
)代表“镜像”,是最重要的选项。它将源文件夹视为“主文件夹”,从而使 robocopy 将源中的任何更改(新文件、删除等)复制/镜像到目标,这对于备份来说是一个有用的设置。/FFT
是一个非常重要的选项,因为它允许在比较文件的时间戳时存在 2 秒的差异,这样您的计算机和备份设备之间的微小时钟差异就无关紧要了。这将确保只复制修改过的文件,即使文件修改时间不完全同步。/R:3
指定连接失败时的重试次数,并/W:10
指定重试之间的等待时间为 10 秒。这些选项在通过网络进行备份时非常有用。/Z
以“重启模式”复制文件,因此中断后部分复制的文件可以继续。/NP
并/NDL
抑制一些调试输出,您还可以添加/NS
,/NC
,/NFL
以进一步减少输出量(请参阅文档有关详细信息)。但是,我建议在第一次运行期间打印一些调试输出,以确保一切按预期工作。
其他用户提到的其他有用参数
/XJD
排除目录的“连接点”和符号链接,这些链接可能会在备份期间导致无限循环等问题。请参阅布赖恩的评论以了解详情。/MT[:N]
使用多线程,可以加快许多小文件的传输速度。对于 N,在普通机器上,内核数量的 2-4 倍应该可以实现。评论者佐尔达什关于原始问题。
针对 Granger 的评论进行编辑:
如果您确实想保留目标端存在但不在源端的文件,只需将选项替换/MIR
为/E
。但是,我强烈建议/MIR
在您想要使用目标端进行增量备份时使用 。否则,任何在源端重命名或移动的文件都会使目标端变得混乱,这意味着您会得到重复的文件。我通常在目标端创建一个子文件夹“备份”,其中包含我的源文件夹树的 1:1 副本。这样,您仍然可以将历史文件保留在备份文件夹旁边,并在以后安全地删除或重新组织它们。
答案2
我喜欢使用以下内容:
robocopy "C:\Users\<user>" "F:\robocopy\<user>" /XJD /R:0 /XA:SH /E /ZB /XO /XD "Downloads" "AppData" /LOG:robocopy.log /TEE
我以管理员身份运行它,因此备份模式(/b
选项)可以复制正在使用的文件。
与增量备份性质无关的其他选项包括:
/XD
从备份中排除目录。
/XJD
排除连接点(“我的音乐”)。
/R:0
将失败尝试重试的次数设置为 0。
/XA:SH
跳过隐藏文件和系统文件。
要删除尽可能多的日志信息,请附加以下选项/NP /NS /NDL /NFL /NC
。