shell脚本死循环判断nginx日志reqest_time时间大于3秒是否增加,若增加发送相关日志信息到开发人员

#!/bin/bash


while [ 1 ]

do 

      pre_request_time_count=`cat /var/log/nginx/access.log |awk '{print $NF}'|awk -F '"' ' $2>3 '|awk -F '"' '{print $2}'|wc -l`   # 取 request_tme 大于3秒的计数值

     echo $pre_request_time_count

      sleep 300 

      last_request_time_count=`cat /var/log/nginx/access.log |awk '{print $NF}'|awk -F '"' ' $2>3 '|awk -F '"' '{print $2}'|wc -l` # 取5分钟后 request_time 大于3秒的计数值

     echo $last_request_time_count

     if [ $pre_request_time_count -lt $last_request_time_count ]; then  # 若计数值增加 , 则发送邮件关于 request_time 大于3秒的日志信息到相关收件人员

          cat /var/log/nginx/access.log |awk '{print $0}'|awk -F '"' ' $(NF-1)>3 ' | /bin/mail -s "dataline-prod nginx request_time 超过3秒" zhaoweifeng@zhi&&***.cn  157453772@****.com

     fi

done 

  

并加入开机启动 :

[root@dataline-prod ~]# cat /etc/rc.local 


sh /etc/zabbix/scripts/nginx_request_time.sh & > /dev/null 2>&1

  

邮件配置参考:

https://www.cnblogs.com/weifeng1463/p/7508485.html

原文地址:https://www.cnblogs.com/weifeng1463/p/9870110.html