发表于: 2017-04-23 23:43:42
2 4524
今天完成的事:
1、抄了个统计IP访问次数的脚本(如果有师弟学到这里打算体验下脚本,那就将下面代码复制到日志目录下你建立的脚本文件里,运行起来看看。特别不建议手打,至于为什么将在今天的坑里说)
#!/bin/bash
#将28/Jan/2015全天的访问日志放到a.txt文本
cat access.log |sed -rn '/23\/Apr\/2017/p' > a.txt
#统计a.txt里面有多少个ip访问
cat a.txt |awk '{print $1}'|sort |uniq > ipnum.txt
#通过shell统计每个ip访问次数
for i in `cat ipnum.txt`
do
iptj=`cat access.log |grep $i | grep -v 400 |wc -l`
echo "ip地址"$i"在2017-04-23日全天(24小时)累计成功请求"$iptj"次,平均每分钟请求次数为:"$(($iptj/1440)) >> result.txt
done
2、听付老师讲课
3、通过命令查看统计脚本
(如果需要查看请求的处理时间需要在Nginx中日志格式配置里添加光标的字段)
(通过命令匹配查看访问showList接口的日志)
(之前我们日志配置中将请求处理时间放在了最后面,所以下面日志末尾为该次访问的请求处理时间)
(通过命令统计访问showList接口的次数)
(通过执行编写的脚本统计访问showList接口的次数)
明天计划的事:将任务3的8和9完成开始任务4
遇到的坑:
最上面的例子用有打没有成功,在不知道是例子错还是我自己错的情况下,于是将命令语句拆分成一个个单一的命令去执行搞了一下午,最后将单个命令组合如下(能够执行,但格式不是自己想要的那种;在组合的过程中艰苦的发现脚本对语法格式的要求很严格,如下面p= cat...你只能这样写,写成p=cat;p = cat;p =cat都错):
在我艰苦的将这段代码打出来后,同门也来敲这个例子,结果用手打也是不行,其后索性将代码贴上运行就成功了(整个下午我都认为人家的代码有问题,,瞬间懵逼中)
收获:简单脚本命令
总结:自己瞎折腾!今天老大后面来看了看,问了我几个问题。瞬间感觉到自己这两天都是在瞎捣鼓,方向不明确,对任务的要求理解不透,如统计访问次数,实际上是统计访问我们所写的接口的访问次数需要的也只有cat grep wc -l 和管道命令这几个东西。完全不用去找个什么例子。
评论