日志分析

 

最基础的日志查看命令(tail):   

        tail -400f  port_19999_access.log    #   监控最后400行日志文件的变化 (-f参数是实时)  

 

查看关键日志(grep过滤器):
        grep 'INFO' port_19999_access.log                         #   在文件port_19999_access.log中查找所有包行INFO的行  

        grep -c 'uid=76842053' port_19999_access.log       #   输出文件port_19999_access.log中查找所有包行 uid=76842053 的行的数量 

               输出:9

        grep -o 'get_user_state/v3?uid=[0-9]\+' port_19999_access.log      #   -o选项只提取get_user_state/v3?uid=xxxx 的内容(而不是一整行),并输出到屏幕上

     输出:      

      get_user_state/v3?uid=70586131
      get_user_state/v3?uid=74199859
      get_user_state/v3?uid=58140943
      get_user_state/v3?uid=63461178
      get_user_state/v3?uid=14659010
      get_user_state/v3?uid=51995497
      get_user_state/v3?uid=69638137

 

          

精简日志内容(sed修改器):

        sed -n '/^2011-08-23.*ERROR/p' demolog.log       #   输出demo.log中的某个日期中的ERROR的行

      输出: 

      2011-08-23 19:57:30,709 [] ERROR bo.CommodityCerOrderBO - order-fix.curr_id:10117,status:添加属性id,但由于认证分类参数有误默认取匹配属性名称的第一个属性id:100104
      2011-08-23 19:57:31,721 [] ERROR bo.CommodityCerOrderBO - order-fix.curr_id:10117,status:添加属性id,但由于认证分类参数有误默认取匹配属性名称的第一个属性id:100105
      2011-08-23 19:57:32,727 [] ERROR bo.CommodityCerOrderBO - order-fix.curr_id:10117,status:添加属性id,但由于认证分类参数有误默认取匹配属性名称的第一个属性id:100107

 

统计日志相关记录数(awk):

         awk 'BEGIN{FS="@"} {print $2,$3}' demo.log_after_sort   #BEGIN中预处理的是,把@号作为行的列分割符,把分割后的行的第2,3列输出  

      输出:(对于从sort得出的结果作为输入)
      10117 INFO
      10117 INFO
      10117 ERROR
      10117 ERROR
      10117 ERROR
      10222 INFO
      ...略

 

posted @ 2018-01-17 16:22  口头猿  阅读(143)  评论(0)    收藏  举报