【问题标题】:Read time stamp from notepad using batch script使用批处理脚本从记事本中读取时间戳
【发布时间】:2016-11-28 20:18:28
【问题描述】:

我正在寻找以下问题的解决方案:

我们每天都会重新加载我们的应用程序,它会每天创建日志文件。 有时,由于与 CPU 使用率和其他奇怪的东西有关的一些问题,日志会停止写入。 现在我们想每 5 分钟监控一次日志文件,如果日志文件中没有更新,那么它应该触发一封电子邮件。 当文件重新加载顺利时,日志文件会每 1 分钟更新一次。

我需要读取日志文件中的时间戳。日志文件有时间戳列,它将每5分钟将内容写入日志文件。所以我需要每 5 分钟读取一次文件中的时间戳,如果超过 5 分钟没有返回任何内容,那么我应该触发警报。

欢迎使用批处理脚本或power shell或任何其他想法来监控日志文件来实现上述场景。

感谢您的帮助。

【问题讨论】:

  • 还没有尝试过任何东西,大卫,正在寻找最佳解决方案!请建议我我们该怎么做?
  • (Get-Item log.file).LastWriteTime -ge (Get-Date).AddMinutes(-5)
  • @MathiasR.Jessen 不是更好` If ((Get-Item log.file).LastWriteTime -le (Get-Date).AddMinutes(-5)) {send-mail ...}`

标签: powershell powershell-3.0


【解决方案1】:

您绝对可以为此目的使用 Powershell!

确保您已更改脚本的 Powershell 执行策略。你可以这样改变它:

Set-ExecutionPolicy -ExecutionPolicy Unrestricted

这是处理它的简单脚本。当然,它可以做成一个/两个衬里,但我试图让它更具可读性/可理解性,有:

$FilePath = 'C:\log.txt' #Log file location
$Minutes = 5 #LastWriteTime older than 5 minutes from current time.

#General email parameters
$SMTP = 'your.smtp.server.local'
$From = 'yourserviceaccount@contoso.com'
$To = 'someperson@contoso.com'
$Subject = 'Action Required'
$Body = 'Log file havent been written from more than {0} minutes!' -f $Minutes

$LastWriteTime = (Get-ItemProperty -LiteralPath $FilePath).LastWriteTime
if ($LastWriteTime -ge (Get-Date).AddMinutes(-$Minutes))
{
    Send-MailMessage -SmtpServer $SMTP -Port 25 -From $From -To $To -Subject $Subject -Body $Body -Priority High
}

然后您可以创建一个计划任务,该任务将每 N 分钟触发一次脚本文件。

【讨论】:

  • Kirill,我需要读取日志文件中的时间戳。日志文件有时间戳列,它将每5分钟将内容写入日志文件。所以我需要每 5 分钟读取一次文件中的时间戳,如果超过 5 分钟没有返回任何内容,那么我应该触发警报。
  • @AnilKumar,您的日志文件中的时间戳格式如何?
  • 这里是:2016 年 11 月 28 日上午 11:50:46:CPU 目标 x64 2016 年 11 月 28 日上午 11:50:46:操作系统 Windows Server 2008 R2 Enterprise Service Pack 1 ( 64 位版本)2016 年 11 月 28 日上午 11:50:46:Wow64 模式未使用 2016 年 11 月 28 日上午 11:50:46:PreferredCompression 2 2016 年 11 月 28 日上午 11:50:46:EnableParallelReload 1 11/ 28/2016 上午 11:50:46:ParallelizeQvdLoads 1 2016 年 11 月 28 日上午 11:50:46:AutoSaveAfterReload 0 2016 年 11 月 28 日上午 11:50:46:BackupBeforeReload 0
  • 为什么需要查看日志文件?如果它以任何方式被改变,它无论如何都会改变它的最后一次写入值。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-04
  • 2015-11-02
相关资源
最近更新 更多