发表于: 2017-09-15 23:05:28
1 896
说明:晚上11点写了日报前一小部分并提交,后来继续编辑;在凌晨1点没有保存提交,失误关闭浏览器,大部分内容找不回来了,所以贴出我的shell script,把之前内容删除,回家睡觉。
#!/bin/bash
#Program: This script filters the log of nginx
#History 2017/09/14 ganle 1st realse
reset_terminal=$(tput sgr0)
nginx_log_path='/usr/local/nginx/logs/access1.log'
#the log of nginx after filter
nginx_log_awkpath='/usr/local/nginx/logs/temp.log'
#filter log only with http code
cat ${nginx_log_path} | grep -ioE "HTTP\/1\.[1|0]\"[[:blank:]][0-9] {3}"| awk '{print $2}' > ${nginx_log_awkpath}
echo “------>过滤得到当前项目日志”
cat ${nginx_log_awkpath} | grep "projectname" > /usr/local/nginx/logs/projectname.txt
echo "------>过滤得到当前项目的数据库连接时间"
cd logs
cat projectname.txt | awk '{print $12}' > LinkTime.txt
mv /usr/local/nginx/logs/LinkTime.txt /home/data/nginx_data/LinkTime.txt
export PATH=$PATH:/home/data/nginx_data
cat LinkTime.txt |less
echo "------>过滤得到连接时间小于20ms的日志"
cat LinkTime.txt | awk 'BEGIN{sum=0}{if($1<20) sum++;}END{print sum}'
echo "------>过滤得到连接时间大于20ms小于50ms的日志"
cat LinkTime.txt | awk 'BEGIN{sum=0}{if(($1>20)&&($1<50)) sum++;}END{print sum}'
echo "------>过滤得到连接时间大于50ms小于100ms的日志"
cat LinkTime.txt | awk 'BEGIN{sum=0}{if(($1>50)&&($1<100)) sum++;}END{print sum}'
echo "------>过滤得到连接时间大于100ms日志"
cat LinkTime.txt | awk 'BEGIN{sum=0}{if($1>100)sum++;}END{print sum}'
echo "------>过滤得到访问延迟时间"
cd /usr/local/nginx/logs
cat projectname | awk '{print $9}' > DelayTime.txt
echo "------>nginx延迟时间小于20ms"
cat DelayTime.txt | awk 'BEGIN{sum=0}{if($1<20/1000) sum++;}END{print sum}'
echo "----->数据库连接时间大于20ms小于50ms"
cat DelayTime.txt | awk 'BEGIN{sum=0}{if(($1>20/1000)&&($1<50/1000)) sum++;}END{print sum}'
echo "----->数据库连接时间大于50ms小于100ms"
cat DelayTime.txt | awk 'BEGIN{sum=0}{if(($1>50/1000)&&($1<100/1000)) sum++;}END{print sum}'
echo "----->数据库连接时间大于100ms"
cat DelayTime.txt | awk 'BEGIN{sum=0}{if($1>100/1000)sum++;}END{print sum}'
主要参照于博韬师兄的日报写成,目前尚未实际测试;其中对于export 设置临时路径的生存时间范围还不确定,没弄清是执行完export后任意一个命令后就终止,还是一直作用到脚本结束。
评论