先基本了解一几条命令
一下脚本都是基于上面日志格式的,如果你的日志格式不同需要调整awk后面的参数。
分析日志中的UserAgent
代码如下 | 复制代码 |
cat access_20130704.log | awk -F """ '{print $(NF-3)}' | sort | uniq -c | sort -nr | head -20 |
上面的脚本将分析出日志文件中最多的20个UserAgent
分析日志中那些IP访问最多
代码如下 | 复制代码 |
cat access_20130704.log | awk '{print $1}' | sort | uniq -c | sort -nr | head -20 |
分析日志中那些
Url请求访问次数最多
代码如下 | 复制代码 |
cat access_20130704.log | awk -F """ '{print $(NF-5)}' | sort | uniq -c | sort -nr | head -20 |
下面我们进入正题了,利用grep的强大体现在N多方面,这里用grep正则表达式来分析nginx日志,为了方便多次使用,写脚本留念。暂时命名为 nla.sh
可以根据自己的需要修改,被grep的东西,来得到自己想要的结果。
代码如下 | 复制代码 |
#!/bin/bash ################################################# # 修改下面一行为日志位置 # 配置结束 log_num=$(ls ${log_dir} | wc -l) checkid=0 |
运行结果范例如下:
[root@hostname temp]# ls -lh
总用量 299M
-rw-r----- 1 root root 11M 5月 14 13:25 access.log-20120508.gz
-rw-r----- 1 root root 158M 5月 14 13:25 access.log-20120509
-rw-r----- 1 root root 2.2M 5月 14 13:25 access.log-20120510.gz
-rw-r----- 1 root root 129M 5月 14 13:25 access.log-20120511
-rwxr-xr-x 1 root root 3.4K 5月 14 13:10 nla.sh
[root@hostname temp]# sh nla.sh
access.log-20120508.gz: 93.5% -- replaced with access.log-20120508
access.log-20120510.gz: 93.9% -- replaced with access.log-20120510
日志 access.log-20120508 共 643281 行,需要处理 20 项
来源IP数:7483
44.52% http 200: 286400
3.55% http 206: 22824
20.23% http 404: 130128
14.31% http 503: 92029
1.94% 来自Google爬虫: 12491
2.01% 来自百度蜘蛛: 12943
0.90% 来自Bing爬虫: 5780
76.53% MSIE: 492291
2.21% Firefox: 14209
7.03% Webkit: 45215
0.27% Opera: 1736
25.17% Windows 7: 161935
1.37% Mac OS X: 8830
0.03% Linux with X11: 202
0.03% Android: 190
0.11% iPad: 677
0.50% 诺基亚系列: 3207
0.02% Nokia5800 XpressMusic: 102
36.06% 访问mp3文件: 231959
23.10% 访问jpg文件: 148600
-----------------
日志 access.log-20120509 共 608316 行,需要处理 20 项
来源IP数:7429
45.15% http 200: 274651
1.79% http 206: 10884
15.59% http 404: 94854
19.95% http 503: 121376
2.83% 来自Google爬虫: 17245
1.80% 来自百度蜘蛛: 10970
0.23% 来自Bing爬虫: 1410
78.96% MSIE: 480324
1.28% Firefox: 7783
7.85% Webkit: 47774
0.43% Opera: 2597
22.85% Windows 7: 139022
0.63% Mac OS X: 3827
0.06% Linux with X11: 389
0.06% Android: 372
0.06% iPad: 351
0.19% 诺基亚系列: 1158
0.00% Nokia5800 XpressMusic: 4
34.94% 访问mp3文件: 212555
23.46% 访问jpg文件: 142702
-----------------
日志 access.log-20120510 共 141224 行,需要处理 20 项
来源IP数:2040
50.15% http 200: 70823
1.67% http 206: 2354
14.15% http 404: 19987
17.37% http 503: 24534
4.53% 来自Google爬虫: 6399
2.66% 来自百度蜘蛛: 3754
0.44% 来自Bing爬虫: 622
69.34% MSIE: 97921
1.19% Firefox: 1682
9.54% Webkit: 13470
0.53% Opera: 742
19.37% Windows 7: 27351
1.23% Mac OS X: 1737
0.03% Linux with X11: 45
0.00% Android: 0
0.09% iPad: 130
0.86% 诺基亚系列: 1220
0.00% Nokia5800 XpressMusic: 0
30.29% 访问mp3文件: 42777
23.91% 访问jpg文件: 33768
-----------------
日志 access.log-20120511 共 473259 行,需要处理 20 项
来源IP数:5093
44.91% http 200: 212551
1.96% http 206: 9286
15.14% http 404: 71671
21.20% http 503: 100322
2.44% 来自Google爬虫: 11548
1.40% 来自百度蜘蛛: 6616
3.40% 来自Bing爬虫: 16068
76.75% MSIE: 363224
0.93% Firefox: 4388
6.75% Webkit: 31937
0.31% Opera: 1444
28.62% Windows 7: 135444
0.43% Mac OS X: 2057
0.02% Linux with X11: 116
0.00% Android: 0
0.09% iPad: 419
0.23% 诺基亚系列: 1094
0.00% Nokia5800 XpressMusic: 0
35.77% 访问mp3文件: 169274
22.46% 访问jpg文件: 106299
-----------------
access.log-20120508: 93.5% -- replaced with access.log-20120508.gz
access.log-20120510: 93.9% -- replaced with access.log-20120510.gz
[root@hostname temp]# ls -lh
总用量 299M
-rw-r----- 1 root root 11M 5月 14 13:25 access.log-20120508.gz
-rw-r----- 1 root root 158M 5月 14 13:25 access.log-20120509
-rw-r----- 1 root root 2.2M 5月 14 13:25 access.log-20120510.gz
-rw-r----- 1 root root 129M 5月 14 13:25 access.log-20120511
-rwxr-xr-x 1 root root 3.4K 5月 14 13:10 nla.sh