本帖最后由 lyhabc 于 2016-1-16 00:16 编辑
awk '/ 502 /' /usr/local/nginx/logs/www.80ops.cn.log|awk '{print $1}'|sort |uniq -c
先统计502的行,再只显示第一行,然后统计行数
awk '/ 200 /' /usr/local/nginx/logs/www.80ops.cn.log|awk '{print $1}'|sort |uniq -c
统计来源ip的访问次数,如果某ip一天访问次数过多,例如一天十万次,可以封ip
其实很多时候,我们不需要很清楚awk语法,例如 awk -F ' ' '$1==XX {print xx}' xx.txt
首先,大部分配置文件或者日志文件都以空格为分隔符的,所以基本上不需要 -F ' '
第二,一般日志文件都有很多字段,有些人就会去数到底是哪一个字段 awk '$10==200 {print xx}' xx.txt
其实不需要,既然空格为分隔符,我们就可以awk '/ 200 /' ,也可以达到精确匹配的效果
第三,很多都记得awk 有{print xx},其实,{print xx}是给我们打印某个字段的时候用的,如果我们需要打印一整行,完全可以不写{print xx},直接
awk '/ 200 /'
以上是用法总结
还可以找出一些黑客,恶意评论的ip,之前博客一直都有垃圾评论几百条,每天都有,姓名都是angelina
awk '/180.97.106.37 /' /usr/local/nginx/logs/www.80ops.cn.log|awk '{print $1}'|sort |uniq -c
20597 180.97.106.37
2万次请求,我的博客新开的,根本不可能那么多人访问
从cnzz里就可以看到,多数来自南京
日志格式
192.168.1.2 - - [15/Jan/2016:23:59:51 +0800] "HEAD / HTTP/1.1" 200 0 "-" "Mozilla/5.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322) xxx" -
192.168.1.2 - - [16/Jan/2016:00:01:04 +0800] "GET / HTTP/1.1" 200 7601 "-" "xxx/2.0" -
192.168.1.2 - - [16/Jan/2016:00:01:05 +0800] "POST /wp-cron.php?doing_wp_cron=1452873665.4025080204010009765625 HTTP/1.0" 200 3 "-" "WordPress/4.3.2; http://www.80ops.cn" -
192.168.1.2 - - [16/Jan/2016:00:01:05 +0800] "GET / HTTP/1.1" 301 13 "-" "xxx/2.0" -
awk '/ 502 /' /usr/local/nginx/logs/www.80ops.cn.log|awk '{print $1}'|sort |uniq -c
先统计502的行,再只显示第一行,然后统计行数
awk '/ 200 /' /usr/local/nginx/logs/www.80ops.cn.log|awk '{print $1}'|sort |uniq -c
统计来源ip的访问次数,如果某ip一天访问次数过多,例如一天十万次,可以封ip
其实很多时候,我们不需要很清楚awk语法,例如 awk -F ' ' '$1==XX {print xx}' xx.txt
首先,大部分配置文件或者日志文件都以空格为分隔符的,所以基本上不需要 -F ' '
第二,一般日志文件都有很多字段,有些人就会去数到底是哪一个字段 awk '$10==200 {print xx}' xx.txt
其实不需要,既然空格为分隔符,我们就可以awk '/ 200 /' ,也可以达到精确匹配的效果
第三,很多都记得awk 有{print xx},其实,{print xx}是给我们打印某个字段的时候用的,如果我们需要打印一整行,完全可以不写{print xx},直接
awk '/ 200 /'
以上是用法总结
还可以找出一些黑客,恶意评论的ip,之前博客一直都有垃圾评论几百条,每天都有,姓名都是angelina
awk '/180.97.106.37 /' /usr/local/nginx/logs/www.80ops.cn.log|awk '{print $1}'|sort |uniq -c
20597 180.97.106.37
2万次请求,我的博客新开的,根本不可能那么多人访问
从cnzz里就可以看到,多数来自南京
日志格式
192.168.1.2 - - [15/Jan/2016:23:59:51 +0800] "HEAD / HTTP/1.1" 200 0 "-" "Mozilla/5.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322) xxx" -
192.168.1.2 - - [16/Jan/2016:00:01:04 +0800] "GET / HTTP/1.1" 200 7601 "-" "xxx/2.0" -
192.168.1.2 - - [16/Jan/2016:00:01:05 +0800] "POST /wp-cron.php?doing_wp_cron=1452873665.4025080204010009765625 HTTP/1.0" 200 3 "-" "WordPress/4.3.2; http://www.80ops.cn" -
192.168.1.2 - - [16/Jan/2016:00:01:05 +0800] "GET / HTTP/1.1" 301 13 "-" "xxx/2.0" -
0
本帖最后由 wsw13640218682 于 2016-1-16 19:13 编辑
awk '/200/ {ip[$1]++}END{for(i in ip)print ip,i}' |uniq -c,这样也可以统计ip成功访问次数
awk '/200/ {ip[$1]++}END{for(i in ip)print ip,i}' |uniq -c,这样也可以统计ip成功访问次数
0
可以,但是你记得住吗?
wsw13640218682 发表于 2016-1-16 19:09
awk '/200/ {ip[$1]++}END{for(i in ip)print ip,i}' |uniq -c,这样也可以统计ip成功访问次数
可以,但是你记得住吗?
编辑回复