要处理一个 XenServer dom0 崩溃的问题,感觉是硬件问题(应该是处理器)。需要查 MCE 错误代码,但问题是 XenServer dom0 (CentOS 5.x) kern.log 的格式是非标准的,用 mcelog 程序没法直接读,需要处理一下,查到一个 perl 1-liner 但本人对 perl 一无所知,调试了一下无果,错误看不懂。
cat kern.log | perl -ne '/CPU(\d+), BANK(\d+), addr (\S+), state (\S+)/; print "CPU $1 BANK $2 TSC 00000000000000\nMISC 0000000000000000 ADDR $3 \nSTATUS $4\n" > mce_fmtd.log'
Can't take log of 0 at -e line 1, <> line 1.
请问一下,有没有办法用 bash 脚本,利用 awk, sed, GNU 命令行工具处理得到同样的结果呢?
kern.log 的格式如下
Apr 16 16:42:10 server109 kernel: MCE_DOM0_LOG: enter dom0 mce vIRQ handler
Apr 16 16:42:10 server109 kernel: MCE_DOM0_LOG: No more urgent data
Apr 16 16:42:10 server109 kernel: [CPU8, BANK0, addr db484ffc0, state cc0000c00001009f]
Apr 16 16:42:10 server109 kernel: MCE_DOM0_LOG: No more nonurgent data
Apr 16 16:42:10 server109 kernel: MCE_DOM0_LOG: enter dom0 mce vIRQ handler
Apr 16 16:42:10 server109 kernel: MCE_DOM0_LOG: No more urgent data
Apr 16 16:42:10 server109 kernel: [CPU8, BANK0, addr db484ffc0, state cc0005000001009f]
Apr 16 16:42:10 server109 kernel: MCE_DOM0_LOG: No more nonurgent data
Apr 16 16:42:26 server109 kernel: MCE_DOM0_LOG: enter dom0 mce vIRQ handler
Apr 16 16:42:26 server109 kernel: MCE_DOM0_LOG: No more urgent data
Apr 16 16:42:26 server109 kernel: [CPU8, BANK0, addr db484fcc0, state cc0004c00001009f]
Apr 16 16:42:26 server109 kernel: MCE_DOM0_LOG: No more nonurgent data
Apr 16 16:42:57 server109 kernel: MCE_DOM0_LOG: enter dom0 mce vIRQ handler
Apr 16 16:42:57 server109 kernel: MCE_DOM0_LOG: No more urgent data
Apr 16 16:42:57 server109 kernel: [CPU8, BANK0, addr db484ef40, state cc0002800001009f]
Apr 16 16:42:57 server109 kernel: MCE_DOM0_LOG: No more nonurgent data
cat kern.log | perl -ne '/CPU(\d+), BANK(\d+), addr (\S+), state (\S+)/; print "CPU $1 BANK $2 TSC 00000000000000\nMISC 0000000000000000 ADDR $3 \nSTATUS $4\n" > mce_fmtd.log'
Can't take log of 0 at -e line 1, <> line 1.
请问一下,有没有办法用 bash 脚本,利用 awk, sed, GNU 命令行工具处理得到同样的结果呢?
kern.log 的格式如下
Apr 16 16:42:10 server109 kernel: MCE_DOM0_LOG: enter dom0 mce vIRQ handler
Apr 16 16:42:10 server109 kernel: MCE_DOM0_LOG: No more urgent data
Apr 16 16:42:10 server109 kernel: [CPU8, BANK0, addr db484ffc0, state cc0000c00001009f]
Apr 16 16:42:10 server109 kernel: MCE_DOM0_LOG: No more nonurgent data
Apr 16 16:42:10 server109 kernel: MCE_DOM0_LOG: enter dom0 mce vIRQ handler
Apr 16 16:42:10 server109 kernel: MCE_DOM0_LOG: No more urgent data
Apr 16 16:42:10 server109 kernel: [CPU8, BANK0, addr db484ffc0, state cc0005000001009f]
Apr 16 16:42:10 server109 kernel: MCE_DOM0_LOG: No more nonurgent data
Apr 16 16:42:26 server109 kernel: MCE_DOM0_LOG: enter dom0 mce vIRQ handler
Apr 16 16:42:26 server109 kernel: MCE_DOM0_LOG: No more urgent data
Apr 16 16:42:26 server109 kernel: [CPU8, BANK0, addr db484fcc0, state cc0004c00001009f]
Apr 16 16:42:26 server109 kernel: MCE_DOM0_LOG: No more nonurgent data
Apr 16 16:42:57 server109 kernel: MCE_DOM0_LOG: enter dom0 mce vIRQ handler
Apr 16 16:42:57 server109 kernel: MCE_DOM0_LOG: No more urgent data
Apr 16 16:42:57 server109 kernel: [CPU8, BANK0, addr db484ef40, state cc0002800001009f]
Apr 16 16:42:57 server109 kernel: MCE_DOM0_LOG: No more nonurgent data