使用批处理脚本每10秒复制一次文件 - 仅一次

时间:2017-08-03 13:29:17

标签: windows batch-file

我正在尝试在Windows上运行批处理脚本,将项目目录备份到本地网络文件共享服务器。

我通常会运行的示例:

robocopy /mir "C:\PROJECT_FOLDER_PATH" "\\NETWORK_FOLDER_PATH"

但是,我的IT管理员时不时地向我介绍了一个大规模的复制操作,这会使网络变慢。

随着我的项目文件夹随着时间的推移而增长,这变得更加令人烦恼。我尝试在当天晚些时候注销时运行脚本,以尽量减少办公室中受影响的人数,但是,我试图找到一个更好的解决方案。

我编写了一个脚本,它使用7zip创建一个7zip存档,并将其拆分为250MB的卷。所以现在我有一个文件夹只包含几个较小的文件,没有文件夹需要担心。但是,如果我将所有这些批量复制到服务器,我担心我仍然遇到同样的问题。

所以我最初的想法是每5-10秒一次运行一个副本文件。而不是一下子。但我只希望脚本运行一次。我知道我可以写一个循环并依赖robocopy的/ mir标签来跳过已经备份的文件,但我不想在启动它后监视脚本。

我想在我准备好备份时运行脚本,然后让它每隔一段时间将文件复制到网络上,以避免对我们的小型网络造成过重的负担。

1 个答案:

答案 0 :(得分:0)

Robocopy有一个特殊选项可以在复制时限制数据流量。

  

/ipg:n - 指定数据包间的间隙,以便在慢线上释放带宽。

数字n是每个64 KB块后Robocopy等待的毫秒数。 数字越大,Robocopy越慢,但是:与IT管理员发生冲突的可能性越小。

示例:

robocopy /mir /ipg:50 "C:\PROJECT_FOLDER_PATH" "\\NETWORK_FOLDER_PATH"

在1 GB的文件(大约16,000个块,每个64 KB)上,这将增加复制800秒(16,000 x 50 ms)文件所需的时间。

假设复制此文件通常需要80秒;在100 Mbit连接上可能就是这种情况。 然后总时间变为80 + 800 = 880秒(差不多15分钟)。 使用的带宽为8000 Mbit / 880秒= 9.1 Mbit / s。 这为其他进程留下了超过90 Mbit / s的带宽。

您可能会觉得有用的其他选项:

  

/rh:hhmm-hhmm - 指定可以启动新副本的运行时间   /pf - 检查每个文件(非每次传递)的运行时间。

来源: