awk对php日志进行去重统计排序

问题

  • 查看所有服务器日志频繁刷新无法快速定位问题

  • 每次都需要按ctrl+c来终止刷新,查看历史日志

  • 无法确定日志的报错数量的分布,来自哪个接口或者服务

思路

  1. 通过awk命令,执行split方法切分当前行的日志

  2. 拆分后得到a[NF],就是最后的接口地址

  3. 然后对其进行?之后的参数拆分,因为我们只需要接口地址,不关心参数

  4. 对其进行ASCII排序

  5. uniq -c去重,并且统计数量

  6. sort -n -r按照数字来进行排序,并且倒序

  7. 获取报错数量最多的前十个

效果

具体接口路径被隐藏

1000 [REQUEST_URI:/vxxxx/yyy/ssss
879 [REQUEST_URI:/xxxx/yyy/ssss
878 [REQUEST_URI:/xxxx/yyy/ssss
601 [REQUEST_URI:/xxxx/yyy/ssss
559 [REQUEST_URI:/xxxx/yyy/ssss
490 [REQUEST_URI:/xxxx/yyy/ssss
477 [REQUEST_URI:/xxxx/yyy/ssss
445 [REQUEST_URI:/xxxx/yyy/ssss
394 [REQUEST_URI:/xxxx/yyy/ssss
381 [REQUEST_URI:/xxxx/yyy/ssss

代码实现

tail -n 100 /var/log/error/web*  |grep -v '==>'| awk '{split($0,a," ");split(a[NF],b,"?");print(b[1])}'|sort|uniq -c  | sort -n -r | head -n 10
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值