【问题标题】:Powershell Check newest log file for latest entry containing errorPowershell 检查最新日志文件以获取包含错误的最新条目
【发布时间】:2015-06-19 03:04:38
【问题描述】:

我知道我错过了一些小东西。但是,我忽略了一些东西。我希望脚本在特定路径中查找最新日志文件,并检查日志文件的最后一行,如果它包含特定错误,请通过电子邮件发送通知。它正确地找到了最新的文件,但似乎没有给我最后一行的输出。想想我错过了什么愚蠢的事情?

Set-Location -Path "\\COMPUTER\C$\application\logs"

$latest = Get-ChildItem | Sort-Object LastAccessTime -Descending | Select-Object -First 1 
$latest.name

$lastentry = Get-Content $latest | Select-object -last 1

if ($lastentry -like "ERROR: Access violation at address*") {
    $strFromAddress = "monitoring@acertaindomain.com"
    $strToAddress = "LotsOfPeople@acertaindomain.com"
    $strMessageSubject = "Your log has errors"
    $strMessageBody = "Bad stuff is happening"
    $strSendingServer = "mail.acertaindomain.com"
    }       

【问题讨论】:

  • 日志文件末尾是否有一系列空行? Get-Content $latest | Where-Object { $_.Trim() -ne '' } | Select-Object -Last 1 将获得最后一个非空白行。
  • 小心任何尾随换行符。 Get-Content 在换行符处拆分,因此它返回的最后一个条目通常是一个空字符串。

标签: powershell logging


【解决方案1】:

我真是个白痴。我感谢你们的意见。所有这些电子邮件标签,我完全忘记了发送该死电子邮件的实际命令。
我只是以最糟糕的方式放屁。但是,您添加的逻辑也有助于证明这一点。当写输出显示我正在寻找的内容时,我当然意识到我在做一些愚蠢的事情。

记住孩子们,设置变量非常棒。但不要忘记对他们做点什么。哈哈

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多