/MON:1 选项效果很好,如果仅发生更改,则运行目录扫描。如果 robocpy 每 10 分钟从 Windows 调度程序运行一次,这是不可能做到的。
有没有办法运行
robocopy \\192.168.1.100\D$\RoboCopyTest \\192.168.1.200\D$\RoboCopyTest /FFT /Z /ETA /E /XA:H /R:0 /W:1 /XO /NP /NDL /NFL /MON:1
Run Code Online (Sandbox Code Playgroud)
命令在 Windows 启动时自动执行,如果命令因某种原因停止 - 重新启动它并向 Windows 事件日志通知命令因某种原因停止。带有 /MON:n 选项的 robocpy 命令只有在文件有 N 次更改时才会无限循环运行。
我们正在淘汰旧文件服务器,进行急需的升级。不用说,这需要尽可能无缝,以尽可能少地影响最终用户。我们正在从 Server 2000 升级到 Server 2008。
我一直在与顾问合作,努力使这一切顺利,但他很忙,我发现他的工作中存在一些漏洞。他建议我们使用 Robocopy 将所有文件从旧服务器复制到新服务器,然后在我们使新服务器上线的前一天再次运行命令以复制自原始副本以来发生更改的所有文件。
我们已经完成了第一个副本,第一个主要故障是没有任何权限被继承。这不是世界末日,考虑到我们正在复制几乎 TB 的数据,我相信手动重新执行权限会更快,而不是使用正确的开关重新复制所有内容。与其依赖我的顾问,我想我会尝试自己解决问题。
这是他推荐的命令(从新文件服务器执行)。
Robocopy \\oldserver\Data E:\DATA /MIR /FFT /Z /XA:H /W:5
在我们上线之前,有没有更简单的方法来复制所有这些数据(同时保持权限)?
我们的客户需要通过 FTP 将指定的文件从他们的网络传输到我们的网络。每当指定文件之一发生更改时,都必须自动调用传输。为此,RoboCopy 是完美的。但是,RoboCopy 不支持传输到 FTP 地址。所以,我想将我们的 FTP 站点映射到客户端服务器上的驱动器号。我发现FtpUse非常适合将 FTP 映射到驱动器号。映射按预期工作,我可以在 Windows 资源管理器中看到 FTP 站点的内容 - 我还可以将数据写入映射的 FTP 驱动器。
因此,假设我已使用以下命令将 FTP 站点映射到本地计算机上的驱动器 Q:
ftpuse Q: [ftp address] [password] /USER:[username]
Run Code Online (Sandbox Code Playgroud)
并尝试使用以下命令设置 RoboCopy:
robocopy [source dir] Q:\ *.xls *.xlsx /COPY:DAT /LOG+:"[LogDir]\FtpCopyLog.txt" /V /NP /MON:1 /MOT:1 /R:10 /W:30
Run Code Online (Sandbox Code Playgroud)
当 RoboCopy 运行时,它失败并显示以下错误消息:
ERROR 87 (0x00000057) Copying File [source dir]\test2.xlsm 参数不正确
我曾尝试映射驱动器并在 samme 用户帐户下运行 RoboCopy 命令,但似乎并没有解决问题。
希望有人能帮忙。
任何帮助将不胜感激。
我编写了一个快速脚本来比较跨服务器的文件差异,然后提示是否镜像更改。如果没有任何更改,我希望它智能地不提示复制。
剧本:
robocopy "$cSource" "$cDestination" /E /L /FP
$cDecision = Read-host "Continue = 1, anything else = Stop"
if ($cDecision -eq "1") {
robocopy "$cSource" "$cDestination" /MIR /FFT /Z /W:5 /MT:64 /XX /log:$cLogLocation
Invoke-item $cLogLocation
}
else { Write-host "Quit!" }
Run Code Online (Sandbox Code Playgroud)
如果 Robocopy 报告“不匹配”、“失败”、“额外”和“复制”为 0,我希望 Powershell 不会要求继续。对于这个特定的项目来说,这不是很重要,但我可以想到这种检查的几个有用的用途。谢谢!
我最近同步了一个外部硬盘,它有大约 1.4 TB 的数据与基于 Windows 的文件服务器上的 GUI 同步应用程序复制。同步方向,从左到右。
发生的问题是执行同步的 GUI 应用程序受到 Windows Explorer 255 路径大小限制。由于数据源自 UNIX 系统,这会阻止复制某些文件夹/文件,因为它们超出了此限制。
我现在想使用 robocopy 来获取遗漏的剩余目录和文件(因为它没有路径限制),而不是再次复制整个目录。是否有我可以使用的标志组合来实现这一目标?
标题几乎总结了它。
我最近从备份中恢复了一个文件共享。经过大约一天的生产用户发现我们开始注意到一些文件已损坏。再次从备份中提取这些文件表明备份实际上是完整的。但是,用户正在修改文件。
使用 robocopy,我可以覆盖此共享中的所有文件,跳过目标上的较新文件吗?换句话说,我基本上想重新复制所有内容,除非用户对共享上的文件进行了更改。
/is 标志似乎很有趣,但不确定它是否会用较新的时间戳覆盖文件。
和洞察力将不胜感激。
这是一个两部分。
A) 尝试在 server 2008 中执行此操作,命令由域管理员运行:
Robocopy \server\c$\users D:\backupfolder /MIR
我在用户文件夹中的所有文件上都收到“拒绝访问”。这适用于除 2008 以外的任何服务器,因此它必须是新的安全结构。
B) 阅读后,我尝试在 robocopy 上使用 /B 进行“备份模式”切换。这表示以下错误:
错误:您没有“备份和还原文件”用户权限。***** 您需要这些来执行备份副本(/B 或 /ZB)。
错误:Robocopy 内存不足,正在退出。错误:无效参数#%d:“%s”
我的用户是域管理员,也添加到服务器上的本地“备份操作员”组。我必须做什么才能在 2008 服务器上获得备份/恢复用户权限?
问题
我们想将多个网络共享中的关键文件备份到可移动硬盘驱动器。我们希望自动备份,因此我们不必记住运行它。它需要在一夜之间完成。此外,我们希望能够保留每个文件的多个版本,以便我们可以更轻松地解决用户的错误。
背景资料
我在一家基于 Windows 的大型企业工作,有一个集中的 IT 部门负责所有备份。他们的备份面向灾难恢复而不是用户错误,并且需要上级管理人员批准任何非灾难恢复。有几次我们注意到我们的备份失败了,我们没有收到通知。我没有服务器或桌面的管理权限。我们正在尝试备份大约 240 GB 的大约 198,000 个文件。这些文件很少更改。我们的备份驱动器是 1 TB。
我建议的解决方案
我想要做的是使用带有 /mir 选项的Robocopy和Mercurial SCM编写一个批处理文件来存储文件的所有版本。我会在每次执行 Robocopy 之前先执行 hg add 和 hg commit,以保存当前状态,然后制作文件结构的镜像副本。问题是 /mir 将删除源中不存在的每个文件夹,而 Mercurial 将存储库存储在目标文件夹中的 .hg 文件夹中。
有谁知道我如何说服 Mercurial 将 .hg 文件夹存储在其他地方,或者说服 Robocopy 不要从目的地删除它?
我试图避免编写自定义程序来进行复制。
我正在创建一个计划任务,该任务从 Windows Server 2012 R2 上的脚本调用 robocopy。无论它是手动运行还是从计划任务运行,它当前都会引发以下错误:
ERROR : You do not have the Manage Auditing user right.
***** You need this to copy auditing information (/COPY:U or /COPYALL).
Run Code Online (Sandbox Code Playgroud)
该任务已设置为“无论用户是否登录都运行”和“以最高权限运行”。脚本如下:
Add-Content E:\ITS\CopyScripts\box1-backup-robocopy.log "script running"
#Input the variables for the robocopy script
$Source = "\\box1-prod\images\prod\"
$Destination = "E:\Box1\Backups\images"
$Retries = 1
#This is the Robocopy script
Robocopy.exe $Source $Destination /E /Z /COPYALL /XO /r:$Retries /purge /xd '$RECYCLE.BIN' 'System Volume Information' '._nfs' /log:E:\ITS\CopyScripts\box1-backup-robocopy.log /tee
Run Code Online (Sandbox Code Playgroud)
任何帮助解决这个问题将不胜感激。
当前问题:14 TB 大小的文件集群磁盘需要一个 CHKDSK,因为它持续时间太长而无法完成。所以我打算在集群的存储中替换这个磁盘。我使用 robocopy 多次运行 copyjob。完全没有问题,直到我看到了很大的不同。
我的问题:带有复制数据的新磁盘需要比原始磁盘多 1 TB 的磁盘空间。是不是 Dedup 造成的?我已删除该卷并将重新启动复制作业。
环境:Windows 2012 Server(无 R2!)
当前磁盘:重复数据删除活动
新磁盘:使用 robocopy 复制文件
Robocopy 命令:
robocopy I:\ E:\ /E /COPYALL /PURGE /MIR /B /R:1 /W:1 /LOG:C:\Temp\robocopy\logfile.log /NFL /NDL /NP
Run Code Online (Sandbox Code Playgroud)
我应该用 /XP 排除系统信息量吗?当我用 treesize 检查卷时,它显示 95%(在两个驱动器上)的存储位置被系统卷信息使用。
重复数据删除在新驱动器上自动激活。那么我必须考虑什么才能安全地复制我的数据?
robocopy ×10
windows ×3
backup ×2
powershell ×2
batch-file ×1
ftp ×1
mercurial ×1
migration ×1
mirror ×1