Powershell 检查日志文件并在发现错误代码时重启服务
Powershell check log file and restart service if error code found
我是 PowerShell 的新手,我正在尝试获取一个脚本 运行 来检查日志文件最后 5 行中的错误代码。如果脚本发现错误,它应该重新启动服务,否则它应该循环回到顶部并重新执行。
if(Get-Content C:\x\x\x\Log.log -last 5 | Select-String -pattern "Error" -Quiet){
Restart-Service -Name xxx -Force
}
else
到目前为止,您的代码是正确的。但是,-last
参数在Get-Content
中不存在。试试 -Tail
.
您需要将您的代码包含在无限循环中(不推荐这样做):
while($true)
{
if(Get-Content C:\a\b\c\log.log -Tail 5 | Select-String -Pattern "Error")
{
Write-Host "Error found - restarting service..."
Restart-Service -Name myService -Force
}
Start-Sleep 5
}
这将读取日志的最后 5 行,如果这些行中的任何一行与提供的模式匹配,它将写出它正在重新启动服务然后强制重新启动服务,等待 5 秒然后返回开始并再次检查。
我是 PowerShell 的新手,我正在尝试获取一个脚本 运行 来检查日志文件最后 5 行中的错误代码。如果脚本发现错误,它应该重新启动服务,否则它应该循环回到顶部并重新执行。
if(Get-Content C:\x\x\x\Log.log -last 5 | Select-String -pattern "Error" -Quiet){
Restart-Service -Name xxx -Force
}
else
到目前为止,您的代码是正确的。但是,-last
参数在Get-Content
中不存在。试试 -Tail
.
您需要将您的代码包含在无限循环中(不推荐这样做):
while($true)
{
if(Get-Content C:\a\b\c\log.log -Tail 5 | Select-String -Pattern "Error")
{
Write-Host "Error found - restarting service..."
Restart-Service -Name myService -Force
}
Start-Sleep 5
}
这将读取日志的最后 5 行,如果这些行中的任何一行与提供的模式匹配,它将写出它正在重新启动服务然后强制重新启动服务,等待 5 秒然后返回开始并再次检查。