【发布时间】:2017-05-12 21:52:18
【问题描述】:
我正在以下日志文件中搜索错误,如果为真,我会收到一封邮件。
(DIAG:GENERAL)(01:02:07 28/12/2016)(FREE MEM.MB:248846)(USER:SYSTEM)(REMOTE:LOCAL)(记录器成功启动...) (诊断:一般)(01:02:08 28/12/2016)(免费 MEM.MB:248878)(用户:系统)(远程:本地)(============== =========================) (诊断:一般)(01:02:08 28/12/2016)(免费 MEM.MB:248878)(用户:系统)(远程:本地)(开始 (诊断:一般)(01:02:08 28/12/2016)(免费 MEM.MB:249051)(用户:系统)(远程:本地)(============== =========================) (DIAG:GENERAL)(01:02:08 28/12/2016)(FREE MEM.MB:249057)(USER:SYSTEM)(REMOTE:LOCAL)(类管理器成功初始化...) (DIAG:GENERAL)(01:02:08 28/12/2016)(FREE MEM.MB:249069)(USER:SYSTEM)(REMOTE:LOCAL)(WinSock 初始化成功...) (DIAG:GENERAL)(01:02:08 28/12/2016)(FREE MEM.MB:249069)(USER:SYSTEM)(REMOTE:LOCAL)(线程管理器成功初始化...) (DIAG:GENERAL)(01:02:08 28/12/2016)(FREE MEM.MB:249067)(USER:SYSTEM)(REMOTE:LOCAL)(事务子系统成功启动...) (DIAG:GENERAL)(01:04:29 28/12/2016)(FREE MEM.MB:201470)(USER:SYSTEM)(REMOTE:LOCAL)(启动初始化基础索引阅读器...名称:) (DIAG:GENERAL)(01:04:32 28/12/2016)(FREE MEM.MB:201470)(USER:SYSTEM)(REMOTE:LOCAL)(停止初始化基础索引阅读器...名称:编号:655711255 设置: 655711255 + (诊断:一般)(01:04:46 28/12/2016)(免费 MEM.MB:200341)(用户:系统)(远程:本地)(...压缩 292527623 / 655711255 % 44.6123) (诊断:一般)(01:05:03 28/12/2016)(免费 MEM.MB:200357)(用户:系统)(远程:本地)(...压缩 288669002 / 655711255 % 44.0238) (DIAG:GENERAL)(01:14:35 28/12/2016)(FREE MEM.MB:202999)(USER:SYSTEM)(REMOTE:LOCAL)(RealTimeManager 成功启动...WIZZADOAS) (诊断:常规)(01:14:35 28/12/2016)(免费 MEM.MB:202999)(用户:系统)(远程:本地)(PersistObjectCache 初始化...COasStudiaFolderObject max = 1) (诊断:一般)(01:14:35 28/12/2016)(免费 MEM.MB:202999)(用户:系统)(远程:本地)(报表布局管理器初始化...) (诊断:一般)(01:14:35 28/12/2016)(免费 MEM.MB:202999)(用户:系统)(远程:本地)(报告数据包管理器初始化...) (DIAG:GENERAL)(01:14:35 28/12/2016)(FREE MEM.MB:202999)(USER:SYSTEM)(REMOTE:LOCAL)(Report Packet Parameter Manager init...) (DIAG:GENERAL)(01:14:35 28/12/2016)(FREE MEM.MB:202999)(USER:SYSTEM)(REMOTE:LOCAL)(CommandManager 成功初始化...) (诊断:常规)(01:14:36 28/12/2016)(免费 MEM.MB:202993)(用户:系统)(远程:本地)(PersistObjectCache 初始化...COasHistoryTransactionObject max = 195069) (DIAG:GENERAL)(01:14:36 28/12/2016)(FREE MEM.MB:202993)(USER:SYSTEM)(REMOTE:LOCAL)(ReferenceManager 成功初始化...) (诊断:一般)(01:14:36 28/12/2016)(免费 MEM.MB:202993)(用户:系统)(远程:本地)(============== ======================) (DIAG:GENERAL)(01:14:36 28/12/2016)(FREE MEM.MB:202993)(USER:SYSTEM)(REMOTE:LOCAL)(Server64 成功启动......) (DIAG:GENERAL)(01:14:36 28/12/2016)(FREE MEM.MB:202993)(USER:SYSTEM)(REMOTE:LOCAL)(退出请输入“q”...) (DIAG:GENERAL)(01:14:36 28/12/2016)(FREE MEM.MB:202990)(USER:SYSTEM)(REMOTE:LOCAL)(检查日志文件的当前状态) (诊断:一般)(01:14:36 28/12/2016)(免费 MEM.MB:202987)(用户:系统)(远程:本地)(============== ======================) (DIAG:XMLRPC)(01:14:37 28/12/2016)(FREE MEM.MB:203014)(USER:SYSTEM)(REMOTE:10.67.125.250:3000)(XmlRpc: 称为成员方法“HandleEvent”。 0)s ] = 1052239)
$a = Get-Content 'D:\log\server.log' | Select-String error
if (!($a -eq $null)) {
$b = $a | Out-String
Send-MailMessage -To $me -From $me -Subject "LIVE - Server ERRORs" -Body "$b" -Priority High -SmtpServer $smtp
}
到目前为止,一切都很好。
现在我想知道服务器启动过程需要多长时间。
信息就在那里
(DIAG:GENERAL)(01:02:07 28/12/2016)(FREE MEM.MB:248846)(USER:SYSTEM)(REMOTE:LOCAL)(记录器成功启动...)
和
(DIAG:GENERAL)(01:14:36 28/12/2016)(FREE MEM.MB:202993)(USER:SYSTEM)(REMOTE:LOCAL)(Server64 成功启动....)
但我不知道如何用 RegEx 解析/比较它。
非常感谢您的帮助,因为 RegEx 不是那么容易理解,老实说。
【问题讨论】:
-
所以你不需要 100% 的正则表达式,因为它看起来字符位置是一致的,所以如果你愿意,你可以使用
-like定位行,然后使用子字符串拉出日期。但是,如果您对学习 RegEx 感兴趣,请将您的日志粘贴到 regexr.com 并使用正则表达式字符串,直到您获得所需的匹配项(左侧的参考库也很棒)
标签: regex powershell scripting