分组统计

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://网址 ......." ,

Mysql按周,按月,按日,按小时分组统计数据

旧时模样 提交于 2019-11-29 03:44:17
按周 select DATE_FORMAT(create_time,'%Y%u') weeks,count(caseid) count from tc_case group by weeks; 按月 select DATE_FORMAT(create_time,'%Y%m') months,count(caseid) count from tc_case group by months; 按天 select DATE_FORMAT(create_time,'%Y%m%d') days,count(caseid) count from tc_case group by days; 按小时 select DATE_FORMAT(create_time,'%Y%m%d%H') hours,count(caseid) count from tc_case group by hours; DATE_FORMAT方法说明 格式:DATE_FORMAT(date,format) 根据format字符串格式化date值。下列修饰符可以被用在format字符串中: %M 月名字(January……December) %W 星期名字(Sunday……Saturday) %D 有英语前缀的月份的日期(1st, 2nd, 3rd, 等等。) %Y 年, 数字, 4 位 %y 年, 数字, 2 位 %a