|
shell统计日志信息
一般应用中都会使用log4j记录日志信息,并每天生成一个日志文件,每个文件以当天的日期结尾。
如何统计并分析这些日志信息?
最简单的,使用shell脚本进行统计分析:
下面的脚本就将最近一周的日志文件的行数进行了统计并罗列出来,还和上周的进行了比较。
可以将分析出来的信息输出到一个特定文件中,将该文件发送邮件或给web服务进行显示。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
| 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 "========================================================="
|
输出结果:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
| 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
=======================================================
|
|
|
|
|
|
|
|