apache日志分析常用命令

转自 http://blog.csdn.net/xingfujie/article/details/7331444

1.1 查看apache连接数

方法一

[root@web10 ~]#netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
LAST_ACK 8
SYN_RECV 1
ESTABLISHED 1747
FIN_WAIT1 12
TIME_WAIT 14208

方法二

netstat -an|grep ESTAB |awk '{print $5}'|cut -d":" -f1|egrep -v "^$"|sort |uniq -c |sort -nr -k1|head -10

1.2 获得访问前10位的ip地址
cat access.log|gawk '{print $1}' |sort|uniq -c|sort -nr |head -10

1.3  访问次数最多的文件或页面
cat access.log|gawk '{print $11}' |sort|uniq -c|sort -nr

1.4  通过子域名访问次数,依据referer来计算,稍有不准
cat access.log | awk '{print $11}' | sed -e's/http:\/\///' -e 's/\/.*//' | sort| uniq -c | sort -rn | head -20

1.5 列出传输最大的几个文件
cat access.log |awk '($7~/\.php/){print $10 " " $1" " $4" " $7}' |sort -nr|head -100

1.6  列出输出大于200000byte(约200kb)的页面以及对应页面发生次数
cat access.log |awk '($10 > 200000 && $7~/\.php/){print$7}' |sort-n|uniq -c|sort -nr|head -100

1.7 如果日志最后一列记录的是页面文件传输时间,则列出到客户端最耗时的页面
cat access.log |awk'($7~/\.php/){print $NF " " $1 " " $4" " $7}'|sort -nr|head -20

1.8  列出最最耗时的页面(超过60秒的)的以及对应页面发生次数
cat access.log |awk '($NF > 60&& $7~/\.php/){print $7}'|sort -n|uniq-c|sort -nr|head -100

1.9  列出传输时间超过 30 秒的文件
cat access.log |awk '($NF > 30){print$7}' |sort -n|uniq -c|sort -nr|head -20

1.10 日志中第10个字段表示连接时间,求平均连接时间
cataccess.log |grep "connect cbp"|awk'BEGIN{sum=0;count=0;}{sum+=$10;count++;}END{printf("sum=%d,count=%d,avg=%f\n",s,m,count,sum/count)}'

1.11 用tcpdump嗅探80端口的访问看看谁最高

[root@web5 ~]# tcpdump -i eth0 -tnn dst port 80 -c 1000 | awk -F"." '{print $1"."$2"."$3"."$4}' | sort | uniq -c | sort -nr |head -20

1.12 查看apache的并发连接数

[root@web5 ~]# netstat -antp|grep 80|grep ESTABLISHED|wc -l
378

1.13 查看apache工作在那种模式下

[root@c26-xcar-bbsweb9 ~]# /opt/apache2/bin/apachectl -l
Compiled in modules:
  core.c
  mod_access.c
  mod_auth.c
  mod_include.c
  mod_deflate.c
  mod_log_config.c
  mod_env.c
  mod_expires.c
  mod_setenvif.c
  prefork.c
  http_core.c
  mod_mime.c
  mod_status.c
  mod_autoindex.c
  mod_asis.c
  mod_cgi.c
  mod_negotiation.c
  mod_dir.c
  mod_imap.c
  mod_actions.c
  mod_userdir.c
  mod_alias.c
  mod_rewrite.c
  mod_so.c

1.14 查看IP访问排名前10名的都在干什么

[root@web5 newcar]# cat   access_2012030810.log   | sort | uniq -c | sort -nr | head -n 10

cat cookie_log |grep xxx |awk '{print $1}' |sort| uniq -c | sort -k1,1nr 

sort:  对单词进行排序

uniq -c:  显示唯一的行,并在每行行首加上本行在文件中出现的次数

sort -k1,1nr:  按照第一个字段,数值排序,且为逆序

head -10:  取前10行数据


你可能感兴趣的:(apache日志分析常用命令)