日志统计

Shell 中常见的日志统计方法

爱⌒轻易说出口 提交于 2019-12-06 10:00:08
前面我发布过" Hadoop兮,杀鸡别用牛刀,python+shell实现一般日志文件的查询、统计 " , 需要结合python, 可能还是有一定的门槛, 现将shell部分剥离出来. 举例一些最基本的日志统计方法. (1)查看文件 more crawler.log 查看crawler.log日志 tail -n 100 crawler.log 查看crawler.log的最后100行 (2)匹配统计 cat *.log | grep "ERROR" |wc -l 统计在*.log中出现ERROR的行数, 去掉最后一个管道(即: cat *.log | grep "ERROR" )可以查看具体匹配的是哪些行, 大文件不建议这样做. (3)正则表达式匹配统计 cat *.log | grep ".*Append \(http:\/\/.*\?\) to .*" 查看*.log中匹配正则表达式 .*Append (http:\/\/.*\?) to .* 的行, 为什么括号前要加斜杠呢? 这是shell中正则表达式比较特殊的地方, 括号还有其他个别符号前需要加斜杠. (4)将匹配正则表达式的内容抽取出来, 排重, 再统计. 比如说一个爬虫日志文件中, 我要统计被抓取网址的数量, 统计的网址不能重复. 已知日志的格式为" Append http://网址 ......." ,