多台计算机可以使用PowerShell将数据写入一台远程计算机中的单个文件吗?

我正在编写一些在Hyper-V群集上运行的powershell脚本,以检索群集中每个主机中的VM统计信息,并使用Add-Content cmdlet将数据写入主服务器中的HTML文件。根据虚拟机的数量,每个群集需要20到30分钟才能完成写入。

我很好奇的是主服务器是否可以保持这些多个连接。检索数据本身不是问题,因为该过程在每个群集上运行。但是我担心由于从多个服务器到单个文件的并发连接而可能导致崩溃或其他事情。当然,主服务器的CPU和内存资源就足够了。

我可以让群集中的程序一次运行,还是必须在服务器之间设置一些间隔?预先感谢。

yzp0754 回答:多台计算机可以使用PowerShell将数据写入一台远程计算机中的单个文件吗?

允许多个进程同时写入一个文件通常是一个坏主意。允许这样的过程需要仔细计划。通常会获取write lock,因此一次只能有一个进程可以更新文件。没有一个进程,进程可以将其写入文件,从而导致混乱。进程P和Q像这样锁定地写入内容,

p p p
q q q
q q q
p p p

一切都很好。现在,让我们允许多次写入,并且我们可能-可能这里没有保证! -像这样获取数据

p p q q q 
p
q q q
p p p

这里发生的是两次写入p之后,q写入了3次并添加了换行符。现在,文件结构已经损坏,一行上有五个条目。然后,第三个p用换行符编写。糟糕,一行上只有一个条目。然后,这些过程将继续写,并且偶然地以适当的顺序写了下两行。

正确的方法是获取锁,以便一次只有一个进程可以更新文件。

本文链接:https://www.f2er.com/3168162.html

大家都在问