Robocopy:精通Windows高效安全备份的强大工具及使用指南

了解 Robocopy:Windows 的强大复制工具

自 Windows Vista 起,Robocopy 已成为 Windows 标准配置的一部分。由于其稳健性和可靠性,Robocopy 在系统管理员和 IT 专业人员中备受赞誉。许多情况下,使用 Robocopy 可以成功完成那些其他工具难以处理或可能导致错误消息的复制任务。如果您对 Robocopy 还不熟悉,不妨与我们一起了解一下。

什么是 Robocopy?

Robocopy 是一种专为复制和备份设计的 Windows 工具。用户可以通过在 Windows 命令提示符中输入特殊命令和参数来管理该程序。对于经验较少的 Windows 用户,还可以借助图形界面软件来使用 Robocopy,其中一个免费的 GUI 工具是 RoboMirror。

图片[1]-Robocopy:精通Windows高效安全备份的强大工具及使用指南

Robocopy 是 Windows 内置的最强大和通用的复制工具,其次是 xcopy 和 copy。它拥有多达 72 个参数,几乎没有任何局限,能够处理多种备份需求。此工具甚至可以创建增量备份,仅备份最近的更改,而不是进行完整备份,从而节省存储空间,减轻云服务和网络备份期间的带宽和资源压力。

该工具能够通过相对较少的代码,完整地镜像整个目录结构,这意味着在复制和备份过程中,可以轻松包含子目录。这些基于代码的功能,可以作为其他备份方案的重要补充,比如专注于 Windows 10 的系统映像,或作为服务器备份工具 rsync 的有效替代。

虽然 Robocopy 提供了灵活的备份功能,但其背后仍需一定的学习过程。即使是使用图形用户界面(GUI)工具,初学者也需要耗费一些时间熟悉程序,才能高效地进行备份,充分发挥 Windows 10 中 Robocopy 的优势。然而,对于简单的复制任务,初学者可以相对较快地掌握,并使用清晰的命令语法完成操作。不论操作的复杂程度如何,使用 Robocopy 时都需谨慎,因为文件有被无意删除或覆盖的风险。

Robocopy 备份的命令语法

与 Windows 10 中的所有命令行工具一样,Robocopy 需要特殊的命令语法来执行某些任务。 基本结构如下:

robocopy <source> <destination> [<file>[...]] [<options>]

参数“source”是源目录的路径。 目标目录的路径在“destination”参数中定义。 “file”参数用于将被复制的文件并允许使用占位符。 如果输入 *.* 而不是具体的文件名,则源目录(不包括子目录)中的所有文件都将被复制。 如果要包含某种文件类型的所有文件,可以将星号与文件结尾组合在一起。 因此,如果您想复制所有 Word 文档(并且仅复制 Word 文档),则语法如下所示:

robocopy <Source directory> <Target directory> *.docx

您可以通过在复制命令的末尾添加更多选项来扩展 Robocopy 的功能。例如,您能够设置复制尝试的重复频率,直到成功完成操作。此外,您还可以定义每次尝试之间的等待时间。这些参数显著增强了该工具的多功能性和可靠性。相较于 Windows 资源管理器,这些改进是显而易见的,后者通常无法提供用户的干预机会,并且在处理复杂的复制操作时,常常无故中断。

最重要的 Robocopy 命令

您将在下面找到最重要的命令和选项的概述,它们可用于执行相对简单的 Robocopy 备份。 在之后的部分中,我们将通过示例向您展示如何实现这些命令。

/COPY:copyflag[s] 复制文件属性 – 标准设置:/COPY:DAT – D:数据 – S:安全信息(NTFS 访问控制列表)- A:属性 – O:所有者信息 – T:时间戳 – U:审计信息(文件的 NTFS 监控) 使用权)。
/COPYALL 复制所有文件信息(替代 COPY:DATSOU)
/NOCOPY 不复制文件信息(通常与 /PURGE 结合使用)
/PURGE 如果源目录中不再存在,则删除目标目录中的文件和目录。
/MIR 镜像目录树(相当于组合 /E + /PURGE)
/MON:n 在 n 次更改后再次运行 Robocopy(自动备份的后台操作)
/MOT:n Robocopy 在 n 分钟后再次运行(自动备份的后台操作)
/RH:hhmm-hhmm 定义 Robocopy 处于活动状态的时间跨度
/XF 排除某些文件类型
/XD 排除某些目录
/R:n 定义复制操作失败的重试次数(标准设置:1,000,000)
/W:n 定义重试之间的等待时间(以秒为单位)。 标准设置为 30(在下一次复制尝试前等待 30 秒)
/L 列出备份文件(测试运行,备份不会被执行)
/LOG: 在每个备份或同步过程的新日志文件中记录状态
/LOG+: 将状态添加到现有日志文件
/TEE 在屏幕和日志文件中输出信息
/MOV 复制后从源目录中移动和删除文件
/MOVE 文件和目录在复制后从源目录中移动和删除
robocopy /? 在命令提示符中打开 Robocopy 帮助指南

如何打开 Robocopy

Robocopy 使用 Windows 命令提示符 (cmd.exe) 进行操作。 要进入命令提示符,请打开 Windows 10 运行对话框:

1.按【Win】+【R】键打开运行窗口
2.在字段中输入“cmd”
3.按“确定”

命令提示符将打开,您可以在其中输入 Robocopy 备份和复制操作的命令语法。

如何使用 Robocopy 创建备份

Robocopy 是日常备份程序的理想选择。 在本节中,我们将向您展示如何设置参数和选项,并提供所需代码的示例。

镜像目录

Robocopy for Windows 10 中最常用的选项之一是镜像功能 (/MIR),它创建源目录的完整备份:

robocopy C:\Users\XU\Desktop\test T:\ /MIR

在此示例中,整个源目录(名为“test”)将复制到目标驱动器 (T:\),包括所有子目录(甚至是空目录)。 源目录位于当前活动用户配置文件(在本例中,属于 Maria 的配置文件)的桌面上。

通过试运行进行预检查

如果要测试 mirror 命令捕获了哪些文件以及是否会遇到任何错误,可以添加参数 /L。 命令行将记录该过程并显示任何错误,但不会创建副本。

robocopy C:\Users\XU\Desktop\test T:\ /MIR /L

对 Robocopy 备份的微调控制

为了更好地控制 Robocopy 备份,您可以定义复制尝试次数(R:3 表示尝试 3 次)和尝试之间的等待时间(W:2 表示 2 秒)。 此外,您可以创建一个文件来跟踪备份:

robocopy C:\Users\XU\Desktop\test T:\ /MIR /R:3 /W:2 /LOG+:Z:\LogFiles\logfile.log

在此示例中,将在名为“LogFiles”的目录中创建复制操作协议(logfile.log)。 注意日志目录必须已经存在,否则复制过程将中止。

如果要省略某些文件或文件类型,可以使用参数 /XF(排除文件):

robocopy C:\Users\XU\Desktop\test T:\ /MIR /XF *.docx

可以使用 XD 选项(排除目录)排除整个目录。 由于有问题的目录(“我的文档”)包含一个空格,所以它被放在引号中:

robocopy C:\Users\XU\Desktop\test T:\ /MIR /XD "My Documents"

注意

您需要为在Windows10中使用Robocopy的复制操作指明精确的路径。如果路径的任何部分包含空格,则应将路径放在引号中。

但它会得到比这更精细的调整。您可以针对包含或排除的特定文件属性。这是通过选项 /COPY:copyflag[s] 执行的。 Robocopy 使用命令 /COPY:DAT 作为默认备份文件内容(D = 数据)、只读或隐藏等属性(A = 属性)和时间戳(T = 时间戳)。时间戳包含有关创建日期、修改日期和上次打开日期的信息。此信息对于增量备份至关重要,因为它们应仅适用于最近更改的文件和目录。另一个参数是 S(= security),它传输 NTFS 访问权限。

例如,当目标系统中未正确设置某些安全权限导致复制操作失败或不完整时,排除单个复制标志会有所帮助。在这种情况下,您可以避免使用 S 复制标志。例如,包含标志 A 可以将只读属性复制到备份副本上。如果要传输文件内容、属性和时间戳,代码如下所示:

robocopy C:\Users\XU\Desktop\test T:\ /MIR /COPY:DAT

特别是在涉及冗长的备份过程时,您可能希望使用 /Z 分阶段备份。 如果 Robocopy 需要重新启动,它将从停止的地方开始。 如果一个过程被多次中断也不会有问题。 这种方法可以节省时间和资源,因为它可以防止需要重新备份大文件。

自动化 Robocopy 备份

Robocopy 的优势之一是可以通过批处理文件执行备份。您可以在桌面上创建一个批处理脚本并单击鼠标启动它,也可以将其放在 Windows 自动启动目录中,以便在每次系统启动时运行备份。要进入自动启动文件夹,请在 Windows 资源管理器中键入“Autostart”一词,然后按 Enter。或者,您也可以使用 [Windows] + [R] 打开“运行”窗口,然后在那里输入“shell:startup”,然后单击“确定”。然后您可以使用鼠标将批处理文件拖到目录中。批处理文件的副本或快捷方式链接也可以使用。

另一种自动备份的方法是 Robocopy 的监控功能,它可以永久监控源目录。如果进行了更改,它们将被自动备份。 Robocopy 还可以设置为按您选择的时间表运行(例如,每小时一次)或在特定时间点(例如,下午 6 点)运行。您可以使用选项 /MON:n(在 n 次更改后激活备份)或 /MOT:n(在 n 分钟后激活备份)来设置监控。 /RH:hhmm-hhmm 用于特定时间点。 /MON 和 /MOT 也可以组合:

robocopy C:\Users\XU\Desktop\test T:\ /MIR /R:3 /W:4 /LOG+:Z:\LogFiles\logfile.log /MON:1 /MOT:25

在此示例中,如果至少进行了一项更改,Robocopy 将在 25 分钟后运行备份。 更改记录在日志文件中。 如果您不输入特定时间,Robocopy 将使用默认设置自动检查目录(检查并在必要时在一分钟后备份)。 如果您想仔细查看 Robocopy 的活动,例如在启动新备份之前,您可以使用 /TEE 在命令提示符的屏幕上查看日志。

注意

持续的后台活动会给您的资源带来压力,例如,如果大文件经常在网络上传输或传输到云中。谨慎使用自动化并考虑更新和备份周期。定期检查备份目录是个好主意,尤其是在新备份操作开始时。通过这种方式,您可以确定Robocopy正在做什么,以及是否在后台发生了不必要的、不需要的或错误缠身的备份。

官方主页及示例帮助:https://docs.microsoft.com/zh-cn/windows-server/administration/windows-commands/robocopy

 

请登录后发表评论

    没有回复内容

  • 波浪
  • 波浪
  • 波浪
  • 波浪