我正在寻求加快我的部署过程,目前我有一个登台服务器,并在生产中的Web场。
我目前使用robocopy来镜像临时服务器中的每个Web服务器服务器,但是,这是非常缓慢的。
我的复制命令如下所示
ROBOCOPY %codeSourceDir% %targetSite% /MIR /XF *.config
这是镜像文件夹,不包括任何*.config文件。
这performance正常,但要将200 MB的文件复制到8台服务器,每个服务器大约需要4分钟(总共大约30分钟)。 如果我做一个简单的删除文件夹,并使用远程桌面复制,它在大约5秒内完成! 我认为这种差异之所以如此之大,是因为有很多文件(大约一万个),大部分的时间都是文件比较。
有没有办法加快robocopy,通过忽略文件比较function?
我想要做的是镜像目录(基本上,删除额外的文件),我不在乎,如果我覆盖文件是相同的。 robocopy能做到这一点吗?还是有更好的工具来工作?
/is标志将覆盖文件。 它是“包含相同的文件”,并应完成您的任务。 我也会使用/W:1将重试等待时间设置为1秒,而不是默认值30.您的延迟可能是locking在目标端; 你有检查吗?
我不知道如何复制而不检查,但这应该让你在你需要的地方。
当然,你也可以使用另外一行robocopy在运行镜像之前删除目标目录中的所有文件。 那肯定会起作用。
我不认为我明白你的意思是“简单的删除文件夹和使用远程桌面复制,它在大约5秒内完成”。 你的意思是你实际上从登台服务器上删除了一个文件夹,然后通过RDP将整个层次结构复制到Web服务器上,整个过程需要5秒钟? 你是否告诉它跳过已经在远程服务器上find的所有文件? 这不会更新这些文件的内容,如果他们已经改变。
回到Robocopy,你可以用“/ xo”限制文件集(排除旧文件)。 另外,考虑在“/ mt:X”中使用multithreading,其中“X”是并行运行的线程数。
你可以在这里看到所有Robocopy的选项。
你应该看看DFS – 分布式文件系统(微软) ,透明地做你想做的事情。
它甚至更多