使用 AWK 检索神秘日志文件中的错误
Using AWK to Retrieve an Error in a Cryptic Log File
我需要抓取当前发生的错误,忽略早期发生的错误。问题是日期在上面几行(与错误代码不在同一行)。我如何 return 来自
的信息
***begin ibmdb error message***
其中包含与当前时间相等的日期和时间,并包含所有此错误日志数据:
*** begin ibmdb error message ***
Sun Dec 18 21:50:57 2016 - program 'execjob', User 'OSID:root', RMId 'root' Driver Version '9.0.1.14.865 2015-01-20 04:00:00'
DELETEDBREC() error on file 'USERRPT' in 'GEN'
DeleteSqlRec(lawson."USERRPT", 1)
DB2 FATAL ERROR for SQLExecute - Code: 40001/-911
[IBM][CLI Driver][DB2/AIX64] SQL0911N The current transaction has been rolled
back because of a deadlock or timeout. Reason code "68". SQLSTATE=40001
awk 'BEGIN{FS="begin ibmdb error message"}
捕获开头 - 我如何封装结尾 - Reason code "68"
是这样的吗?我从测试的时间点开始,而不是 begin ibmdb error message
因为我认为可能会有更多部分以相同的文本开头。
$ awk '/21:50/,/Reason code "68"/' file11
Sun Dec 18 21:50:57 2016 - program 'execjob', User 'OSID:root', RMId 'root' Driver Version '9.0.1.14.865 2015-01-20 04:00:00'
DELETEDBREC() error on file 'USERRPT' in 'GEN'
DeleteSqlRec(lawson."USERRPT", 1)
DB2 FATAL ERROR for SQLExecute - Code: 40001/-911
[IBM][CLI Driver][DB2/AIX64] SQL0911N The current transaction has been rolled
back because of a deadlock or timeout. Reason code "68". SQLSTATE=40001
提示:您可以在此处查看 awk 中有关模式匹配的功能:https://www.gnu.org/software/gawk/manual/html_node/Expression-Patterns.html
FS 告诉 awk 行中的字段将由 'begin ibmdb error message'
分隔
你可能想做类似的事情
awk '/begin ibmdb error message/,/Reason code "68"/'
我需要抓取当前发生的错误,忽略早期发生的错误。问题是日期在上面几行(与错误代码不在同一行)。我如何 return 来自
的信息***begin ibmdb error message***
其中包含与当前时间相等的日期和时间,并包含所有此错误日志数据:
*** begin ibmdb error message ***
Sun Dec 18 21:50:57 2016 - program 'execjob', User 'OSID:root', RMId 'root' Driver Version '9.0.1.14.865 2015-01-20 04:00:00'
DELETEDBREC() error on file 'USERRPT' in 'GEN'
DeleteSqlRec(lawson."USERRPT", 1)
DB2 FATAL ERROR for SQLExecute - Code: 40001/-911
[IBM][CLI Driver][DB2/AIX64] SQL0911N The current transaction has been rolled
back because of a deadlock or timeout. Reason code "68". SQLSTATE=40001
awk 'BEGIN{FS="begin ibmdb error message"}
捕获开头 - 我如何封装结尾 - Reason code "68"
是这样的吗?我从测试的时间点开始,而不是 begin ibmdb error message
因为我认为可能会有更多部分以相同的文本开头。
$ awk '/21:50/,/Reason code "68"/' file11
Sun Dec 18 21:50:57 2016 - program 'execjob', User 'OSID:root', RMId 'root' Driver Version '9.0.1.14.865 2015-01-20 04:00:00'
DELETEDBREC() error on file 'USERRPT' in 'GEN'
DeleteSqlRec(lawson."USERRPT", 1)
DB2 FATAL ERROR for SQLExecute - Code: 40001/-911
[IBM][CLI Driver][DB2/AIX64] SQL0911N The current transaction has been rolled
back because of a deadlock or timeout. Reason code "68". SQLSTATE=40001
提示:您可以在此处查看 awk 中有关模式匹配的功能:https://www.gnu.org/software/gawk/manual/html_node/Expression-Patterns.html
FS 告诉 awk 行中的字段将由 'begin ibmdb error message'
分隔你可能想做类似的事情
awk '/begin ibmdb error message/,/Reason code "68"/'