【发布时间】:2017-02-08 10:20:08
【问题描述】:
如果文件停止写入新行,有没有办法监控日志文件并发送警报(电子邮件)?
【问题讨论】:
标签: windows file powershell monitoring
如果文件停止写入新行,有没有办法监控日志文件并发送警报(电子邮件)?
【问题讨论】:
标签: windows file powershell monitoring
下面是实现所需结果的 powershell 脚本。 一旦脚本执行,代码将每五分钟执行一次,除非 powershell 窗口关闭,不需要在任务调度器中调度脚本。
$LogFile = "C:\logs\mylogFile.log"
while($true)
{
$LastWriteTime = (Get-ChildITem $LogFile).LastWriteTime
$CurrentTime = Get-Date
$Diff = (New-TimeSpan -Start $LastWriteTime -End $CurrentTime).TotalMinutes
If($Diff -gt 5)
{
#Send Email Alert if file not written from last 5 minutes or Alert That you want
}
sleep -Seconds (60*5)
}
【讨论】:
您可以使用.NET 中的Timer 之类的计时器实例,并在计时器处理程序上检查文件的最后修改日期。您可以使用 .NET 中的 System.IO.File.GetLastWriteTime 获取文件的最后修改日期。如果上次修改日期足够老,那么您可以发送警报。
【讨论】: