分析にさらに使用できるように、sed正規表現を使用してログファイルからいくつかの情報を抽出しています。次のコマンドを作成しましたが、動作しません。
sed -e 's/\([0-9] [0-9]*.[0-9]*.[0-9]*\)[^@]* ([^@]*@[^[:spa ce:]]*).*F=<\([^ ]*\)>.*I=[\([0-9]\+\.[0-9]\+\.)].*$/\1\t\2/' logs
丸太:
2017-02-13 10:31:55 1cd9Ev-003XiE-Sx ** [email protected] F=<[email protected]> R=dkim_lookuphost T=dkim_remote_smtp H=ah2.inboundmx.com [216.82.242.115] I=[147.75.228.64] X=TLSv1.2:DHE-RSA-AES256-GCM-SHA384:256 CV=yes DN="/C=US/ST=California/L=Mountain View/O=Symantec Corporation/OU=Symantec.cloud CN=mail132.messagelabs.com": SMTP error from remote mail server after end of data: 553-Message filtered. Refer to the Troubleshooting page at\n553-http://www.symanteccloud.com/troubleshooting for more\n553 information. (#5.7.1)
2017-02-14 10:01:40 1cd9Ev-003XiE-Sx ** [email protected] F=<[email protected]> R=dkim_lookuphost T=dkim_remote_smtp H=ah2.inboundmx.com [216.82.242.115] I=[14.176.22.221] X=TLSv1.2:DHE-RSA-AES256-GCM-SHA384:256 CV=yes DN="/C=US/ST=California/L=Mountain View/O=Symantec Corporation/OU=Symantec.cloud CN=mail132.messagelabs.com": 501 Connection rejected by policy. Refer to the Troubleshooting page at\n501-http://www.symanteccloud.com/troubleshooting for more\n501 information. (#5.7.1)
上記のログから次のフィールドを抽出したいと思います。
Timestamp EmailTo: EmailFrom: IPAddress: ErrorCodes:
2017-02-13 10:31:55 [email protected] [email protected] 147.75.228.64 553
2017-02-14 10:01:40 [email protected] [email protected] 14.176.22.221 501
答え1
必須フィールドを抽出することに加えて、別のアイデアは追加の項目を削除することです。
sed '
s/[^: ]*\s\*\*\s//
s/F=<//
s/>.*I=\[/ /
s/\].*more\\n/ /
s/\sinf.*//
' log.file
- 最初のコマンドは削除します。
1cd9Ev-003XiE-Sx **
- 第二 -
F=<
- 3番目 -
> R=dkim_lookuphost T=dkim_remote_smtp H=ah2.inboundmx.com [216.82.242.115] I=[
など…