shell统计日志信息
一般应用中都会使用log4j记录日志信息,并每天生成一个日志文件,每个文件以当天的日期结尾。
如何统计并分析这些日志信息?
最简单的,使用shell脚本进行统计分析:
下面的脚本就将最近一周的日志文件的行数进行了统计并罗列出来,还和上周的进行了比较。
可以将分析出来的信息输出到一个特定文件中,将该文件发送邮件或给web服务进行显示。
date echo "========================================================" echo "========日期========本周量========上周量=====本周-上周==" for i in {1..7} do ddate=$(date +%Y-%m-%d-%w --date="-$i day") xdate=$(date +%Y-%m-%d --date="-$i day") ydate=$(date +%Y-%m-%d --date="-$[i+7] day") x=$(cat "receive-sms.log.$xdate" | wc -l) y=$(cat "receive-sms.log.$ydate" | wc -l) echo " $ddate | $x | $y | $[x-y]" xtotal=$[xtotal+x] ytotal=$[ytotal+y] echo " -----------------------------------------------------" done echo " total value | $xtotal | $ytotal | $[total-ytotal]" echo " -----------------------------------------------------" echo " average value | $[xtotal/7] | $[ytotal/7] | $[xtotal/7-ytotal/7]" echo "========================================================="
输出结果:
2015年 11月 18日 星期三 17:27:00 CST ======================================================= ======日期========本周量========上周量=====本周-上周=== 2015-11-17-2 | 19597 | 16325 | 3272 ------------------------------------------------------- 2015-11-16-1 | 18615 | 15851 | 2764 ------------------------------------------------------- 2015-11-15-0 | 10623 | 9058 | 1565 ------------------------------------------------------- 2015-11-14-6 | 12215 | 10985 | 1230 ------------------------------------------------------- 2015-11-13-5 | 16268 | 16331 | -63 ------------------------------------------------------- 2015-11-12-4 | 16864 | 37047 | -20183 ------------------------------------------------------- 2015-11-11-3 | 15066 | 40440 | -25374 ------------------------------------------------------- total value | 109248 | 146037 | -146037 ------------------------------------------------------- average value | 15606 | 20862 | -5256 =======================================================
原文地址:http://zlfwmm.blog.51cto.com/5892198/1714377