我计划从Windows Server 2003迁移文件共享到Server 2012 R2(它有超过500 GB的数据。仅供参考 – 它没有DFS)。
我想使用下面的命令将数据从源服务器复制到目标服务器:
robocopy "\\Source server\folder\" "\\Target server\folder\" /S /E /COPY:DATSOU /R:1 /W:10 /TEE /log:<log path.txt>
在切换过程中,我打算再次运行相同的命令来复制任何新的/修改过的文件。
上述命令是否存在问题,在切入过程中是否需要包含“/ XO”以排除现有文件的复制?
今年早些时候我有确切的情况。 要回答你的问题,你的Robocopy命令不应该有任何问题。 我想分享用于将我的文件服务器迁移到新的Server 2012 R2 VM的Robocopy命令。
注意:在新的Windows Server 2012 R2服务器上使用相同的驱动器号和完全相同的文件path。 如果不这样做将导致共享信息不匹配,您的迁移失败。
Robocopy开关的详细信息:
/e – Copy subdirectories, including empty ones /xj – Exclude junction points /r:2 – 2 retries /w:5 – 5 second wait between retries /v – Verbose output for skipped files /it – Include tweaked files (identical size/timestamp, but different attributes) /purge – Delete destination files/directories that no longer exist in source /copyall – Copy data, attributes, timestamps, security (ACLs), owner, auditing info
我从Server 2012 R2服务器运行这个命令。
ROBOCOPY /e /xj /r:2 /w:5 /v /it /purge /copyall \\Server2003FileServer\c$\Data c:\Data
然后,您可以从2003服务器导出文件共享信息,然后将共享信息导入到2012 R2服务器。 我使用这里的知识库文章https://support.microsoft.com/en-us/kb/125996执行我的共享导出。
你提到的命令很好,几乎达到你设定的目标。 如果你真的想进行1:1迁移,我build议你考虑以下选项:
robocopy "\\Source server\folder\" "\\Target server\folder\" /MIR /COPY:DATSOU /ZB /R:1 /W:10 /TEE /log:<log path.txt>
/ MIR – 这将MIRror一个目录树 – 无论存在于源,将被复制到目标。 无论源文件中是否存在,都将从目标文件中删除(删除)。 通过这个选项,您将确保没有旧的数据(已经在源代码中删除的数据)将被迁移到新的服务器。 这个选项相当于/ E plus / PURGE。
/ ZB – 使用可重启模式; 如果拒绝访问使用备份模式。 可重新启动模式 – 使用此选项时,如果在部分复制任何特定文件的情况下复制被中断,则下一次执行的robocopy可以从停止的位置获取文件,而不是重新复制整个文件。 例如,当robocopy将在大文件(2 GB)上工作并中断,10秒后( / W:10 ),它将尝试复制它( / R:1 ),但将从其结束的部分开始复制而不是从一开始)。 备份模式 – 与robocopy如何从源系统读取文件有关。 它允许复制在文件本身上或在尝试复制文件的属性/权限时,否则可能会出现拒绝访问错误的文件。 您需要在pipe理员上下文中运行,否则需要使用此标志的备份权限。
您不需要在最终脚本中包含/ XO选项 – robocopy会跳过旧的,而不是更新的文件。