编写powershell脚本分析日志

时间:2014-05-13 05:07:35

标签: parsing search powershell logging

我是Powershell的新手,我需要某种Powershell脚本。日志文件位于D:\ Example \ Example \ log \文件夹中。它像log20140513.log一样每天创建。

我只想查看日志文件的最后1小时数据搜索"运行状态为假!"如果它找到,它应该返回1,否则返回0.那就是它。

这就是我所拥有的:

$file = "D:\EnterAccount\Gecko\log\log20140513.log" 
cat $file | Select-String "ERROR" -SimpleMatch | select -expand line | foreach {
    $_ -match '(.+)\s[ERROR]\s\.\s(.+)' | out-null 
    new-object psobject -Property @{
        Timestamp = [datetime]$matches[1];Error = $matches[2]
    } | where {$_.timestamp -gt (get-date).AddDays(-1)
    }
}

1 个答案:

答案 0 :(得分:1)

您可以创建所有日志文件的数组,然后在每个日志文件上运行代码:

$files = get-childitem D:\EnterAccount\Gecko\log\ -filter *.log | ?{ $_.lastwritetime -gt ((get-date).addHours(-1)) }
$files | foreach{
    cat $_ | Select-String "ERROR" -SimpleMatch | select -expand line | foreach {
        $_ -match '(.+)\s[ERROR]\s\.\s(.+)' | out-null 
        new-object psobject -Property @{
            Timestamp = [datetime]$matches[1];Error = $matches[2]
        } | where {$_.timestamp -gt (get-date).AddDays(-1)
    }
}