发表于: 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后任意一个命令后就终止,还是一直作用到脚本结束。


返回列表 返回列表
评论

    分享到