我们的用户需要从我们的文件服务器中获取他们需要的任何内容以同步到远程位置,但是用户在文件服务器上具有有限的权限来移动文件.所以这是我的任务:
create a tool that user can use to pickup data and sync to remote
location. DFS and 3rd party tools are not options,must be codes made
by our own and everything must be running on background.
这是我的方法,它现在正在运作.我制作了3件组件:
**带有VBS的**** HTA应用程序位于用户PC上,为用户提供文件浏览器以获取数据.
** B ****一个共享位置,允许HTA将数据路径写入txt文件.此文本文件中的任何路径都将作为软链接进入最终位置.
基本上它是如何工作的:
用户使用我制作的HTA从文件服务器中选择数据,它会将完整的数据路径写入共享位置的000.txt文件.我的无限循环脚本监视此共享位置,如果此共享文件夹中的任何用户创建了000.txt文件,它将调用另一个脚本来读取此000.txt中的所有数据路径,并使用mklink根据路径制作软链接用户提供并输出软链接到最终位置,然后删除000.txt文件.此最终位置上的所有软链接将在晚上按计划进行robocopy同步.我的HTA应用程序需要更多功能,无需谈论它.
由于这里没有人谈论编码,所以我删除了我的无限循环代码,这个循环脚本从Windows开始并作为服务运行.我可以随时开始/停止它.它基本上只是监视共享文件夹,如果有任何用户在那里创建000.txt文件,它将调用mklink.bat来制作softlins,并且当制作softlink时,mklink.bat将删除000.txt.我使用无限循环而不是任务调度程序的原因是用户需要在提交数据路径后立即在最终位置查看结果.我认为任务调度程序的最小间隔是一分钟,(@MikeAWood说它可以是1秒.谢谢!)所以我做了这个2秒间隔无限循环来监视共享文件夹.
我的问题如下:
Is this a good idea to running a endless loop on server like forever
to monitor a folder?I monitored the resources usage on server while this script is
running. I dont see any significant consumings…so I guess it will be
harmless right?
如果任务调度程序可以处理1秒间隔,我想我的问题已经解决了.谢谢大家.
或者,如果你有更好的方式来做这个或任何意见我的方式.
至于你所说的实际剧本 – 看起来你正在重新发明一个弗兰肯斯坦的DFS-R怪物和/或Robocopy.
DFS-R是一个可扩展,成熟的文件复制工具,内置于Windows Server中.您应该看看是否可以在这种情况下使用它.微软已经为DFS-R提供了更多的工程大脑能力,而不是将其放入执行相同操作的脚本中.
此外,即使您出于某种原因无法使用DFS-R,robocopy也有一个/ mir开关,它将镜像目录.如果由于某种原因你真的不能使用DFS-R,至少在脚本中使用这样的东西.