首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Powershell:不加锁地复制文件

问Powershell:不加锁地复制文件
EN

Stack Overflow用户
提问于 2020-05-20 03:19:52
回答 1查看 223关注 0票数 0

我创建了简单的nagios插件check_log.ps1来检查windows机器上的日志文件。它的工作方式是复制日志内容,并在下次查找日志副本与原始日志文件之间的不同指定字符串。

问题是,有时在随机时刻,check_log.ps1锁定日志文件,从而导致创建日志文件的应用程序停止。

通常插件在两个地方使用原始日志文件

代码语言:javascript
复制
# compare content of $Logfile and $Oldlog, save diff to $tempdiff
Compare-Object -ReferenceObject (Get-Content -Path $Logfile) -DifferenceObject (Get-Content -Path $Oldlog) | Select-Object -Property InputObject > $tempdiff

# override file $Oldlog using conetent of $Logfile
Copy-Item $Logfile $Oldlog

我做测试。在一个PS会话中,我运行while($true) { [string]"test" >> C:\test\test.log },在第二个会话中,我运行插件C:\test\check_log.ps1 C:\test\test.log C:\test\Old_log.log test

我不能完全确定我的测试是否正确,但我认为Copy-Item命令导致了问题。当我在脚本中注释这一行时,我没有在终端中看到任何错误。我测试了一些自定义函数来复制我在互联网上找到的文件,但我没有找到解决我的问题的方法。

你知道如何让它充分发挥作用吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-05-20 03:29:41

如果您认为复制项目锁定了文件,请尝试读取内容,然后将其保存到其他位置。如下所示:

Get-Content $Logfile | Set-Content $Oldlog

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61899042

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档