EPP是域名注册局与域名注册商之间通信的接口协议,作为像我们这样的大的域名注册商,这个日志的分析,如果不用工具,那就是要命!
这个PowerShell脚本用于把一个EPP通信日志里面,什么时间做了什么事情,做一个分析统计。大家通过这个案例,可以进一步看看怎么从文本文件中抓取出想要的信息来。抓取出来的信息最终被写入了另外一个文件中。
由于EPP协议本身的复杂性,所以处理过程也比较复杂。
$latestTime = '';$latestCmd = '';$latestDomain ='';$file = Get-Content d:\epp-packet.log;$regTime = "^(?<time>\d{8}\s\d{6}).*write\(\)\s:\sSending.*$";$regCmd = "^.*<command><(?<cmd>\w+)>.*>(?<domain>[a-z0-9-\.]+)</domain:name>.*$";foreach($line in $file){ if($line -match $regTime){ $Matches.time; #留在这里,以便了解处理进度 $latestTime = $Matches.time; continue; } if($line -match $regCmd) { $latestCmd = $Matches.cmd; $latestDomain = $Matches.domain; $xx = "$latestTime`t$latestCmd`t$latestDomain"; $xx | Out-File -FilePath "d:\epp-anaysis.log" -Encoding "default" -Append }}Write-Host "compelete!";