0

以下の /var/log/messages で、「WAM1」と「WAM2」の最近の連続した起動の間の時間差 (秒のみ) を見つけるのに助けが必要です

WAM1 で起動された2013-07-09T02:20:10.735639Zので2013-07-09T02:20:12.635639Z、WAM2 の最近のものは秒単位の結果の2013-07-09T02:20:12.635639Z違いです(15.84675 - 12.635639)= 3.211111

2013-07-09T02:20:10.735639Z user.info WbAppMg WAM1
2013-07-09T02:20:11.817372Z user.info sam SAM 
2013-07-09T02:20:12.635639Z user.info WbAppMg WAM1
2013-07-09T02:20:13.817372Z user.info sam SAM  
2013-07-09T02:20:14.818442Z user.info sam SAM  
2013-07-09T02:20:15.846751Z user.info WbAppMg WAM2
2013-07-09T02:20:16.846636Z user.info sam SAM 
2013-07-09T02:20:16.848751Z user.info WbAppMg WAM2 
2013-07-09T02:20:17.851727Z user.info sam SAM
2013-07-09T02:20:18.935639Z user.info WbAppMg WAM1
2013-07-09T02:20:19.535639Z user.info WbAppMg WAM1
2013-07-09T02:20:20.817372Z user.info sam SAM  
2013-07-09T02:20:21.818442Z user.info sam SAM  
2013-07-09T02:20:22.746751Z user.info WbAppMg WAM2
2013-07-09T02:20:23.846636Z user.info sam SAM  
2013-07-09T02:20:24.851727Z user.info sam SAM

以下のプログラムは、上記のログ メッセージに対して間違った結果を返す

$ awk '
/WAM1/{ split($1,start,/[:Z]/); wam1[++i]=start[3] }
/WAM2/{ split($1,stop,/[:Z]/); wam2[++j]=stop[3] }
END   { len=i>j?i:j; for(;x<len;) 
print "Delta "++x" = "wam2[x]-wam1[x] }' /var/log/messages
4

1 に答える 1