标签 sed 下的文章

[Apache]访问日志IP统计

这两个服务器apache error日志暴涨~~~,检查了下日志,封了几个IP

日志内容如图~~~

 

QQ20141206-1

cat ip-error.log |awk -F " " '{print $8}'|sed 's/]//g'|sort|uniq -c|sort -rn

首先用awk 过滤出IP. 以空格位分隔符,打印第八个域,然后用sed 把多余出来的]替换,再排序统计,最后输出到一个文件

得到如图锁所示IP,然后检查量比较大的IP,封了有问题的就OK

iptables -I INPUT -s ip -j DROP

 

QQ20141206-2.

sed 取某时段内apache的访问日志

导出 2013-05-24 15:00:00 ~ 2013-05-28 16:00:00 之间的apache访问日志

Apache日志格式为:

222.92.115.194 - - [28
/May/2013
:17:01:00 +0800] 
"GET /media/js/jquery.eislideshow.js HTTP/1.1"

 

304 -
222.92.115.194 - - [28
/May/2013
:17:01:00 +0800] 
"GET /media/style/tpl/tpl_buy_left/tpl_buy_left.js HTTP/1.1"

 

304 -
222.92.115.194 - - [28
/May/2013
:17:01:01 +0800] 
"GET /favicon.ico HTTP/1.1"

 

404 17846
222.92.115.194 - - [28
/May/2013
:17:01:01 +0800] 
"GET /large-display/interactive/ HTTP/1.1"

 

200 21382
222.92.115.194 - - [28
/May/2013
:17:01:02 +0800] 
"GET /favicon.ico HTTP/1.1"

 

404 17846
222.92.115.194 - - [28
/May/2013
:17:01:04 +0800] 
"GET /large-display/single/ HTTP/1.1"
200 21386
222.92.115.194 - - [28
/May/2013
:17:01:04 +0800] 
"GET /favicon.ico HTTP/1.1"

 

404 17846
222.92.115.195 - - [28
/May/2013
:17:01:05 +0800] 
"GET /dsc/ HTTP/1.1"

 

200 34530
222.92.115.195 - - [28
/May/2013
:17:01:05 +0800] 
"GET /media/img/channel_icon.jpg HTTP/1.1"

 

404 17846
222.92.115.195 - - [28
/May/2013
:17:01:06 +0800] 
"GET /favicon.ico HTTP/1.1"

 

404 17846

截取命令:

[root@style logs]# sed

 

-n
'/24/May/2013:15:00:01/,/28/May/2013:16:59:58/p' xxxx-access_log > 20130524.15-20130528.16-access_log.txt

PS:需要注意的是如果起始时间在日志中不存在,则整个截取将返回 0 行结果。而如果结束时间在日志中不存在,则会截取到日志的最后一条。所以在截取前得要找到最日志中最合适的起始点和结束点。
我的做法是先使用grep去找到两个点  再使用sed去截取

# 找出 2013-05-24 15点第一条记录的时间
[root@style logs]# grep '24/May/2013:15' xxxx-access_log | head

 

-1
10.200.114.183 - - [24/May/2013:15:00:01 +0800] "GET /gp10/pic_259_218_1368781965.png HTTP/1.0" 401 484
# 找出 2013-05-28 16点最后一条记录的时间
[root@style logs]# grep '28/May/2013:16' xxxx-access_log | tail

 

-1
222.92.115.195 - - [28/May/2013:16:59:58 +0800] "GET /favicon.ico HTTP/1.1" 404 17846
# 然后取这两个时间段之间的记录