• zabbix监控nginx状态的shell脚本


    #!/bin/bash
    #Author: Eddie.Peng
    nginx_status_fun(){ #nginx状态函数
    	NGINX_PORT=$1 #nginx监听端口,函数的第一个参数是脚本的第二个参数,即脚本的第二个参数是端口号
    	NGINX_COMMAND=$2 #命令,函数的第二个参数是脚本的第三个参数,即脚本的第三个参数是命令
    
    	nginx_active(){ #获取nginx_active状态的数量
    		/usr/bin/curl "http://127.0.0.1:"$NGINX_PORT"/nginx_status/" 2>/dev/null| grep 'Active' | awk '{print $NF}'
    		}		
    
    	nginx_reading(){ #获取nginx_reading状态的数量
    		/usr/bin/curl "http://127.0.0.1:"$NGINX_PORT"/nginx_status/" 2>/dev/null| grep 'Reading' | awk '{print $2}'
    		}
    	
    	nginx_writing(){ #获取nginx_writing状态的数量
    		/usr/bin/curl "http://127.0.0.1:"$NGINX_PORT"/nginx_status/" 2>/dev/null| grep 'Writing' | awk '{print $4}'
    		}
    
    	nginx_waiting(){ #获取nginx_waiting状态的数量
    		/usr/bin/curl "http://127.0.0.1:"$NGINX_PORT"/nginx_status/" 2>/dev/null| grep 'Waiting' | awk '{print $6}'
    		}
    	
    	nginx_accepts(){
    		/usr/bin/curl "http://127.0.0.1:"$NGINX_PORT"/nginx_status/" 2>/dev/null| awk NR==3 | awk '{print $1}'
    		}
    	
    	nginx_handled(){
    		/usr/bin/curl "http://127.0.0.1:"$NGINX_PORT"/nginx_status/" 2>/dev/null| awk NR==3 | awk '{print $2}'
    		}
    	
    	nginx_requests(){
    		/usr/bin/curl "http://127.0.0.1:"$NGINX_PORT"/nginx_status/" 2>/dev/null| awk NR==3 | awk '{print $3}'
    		}
    
    	case $NGINX_COMMAND in
    		active)
    			nginx_active;
    			;;
    		reading)
    			nginx_reading;
    			;;
    		writing)
    			nginx_writing;
    			;;
    		waiting)
    			nginx_waiting;
    			;;
    		accepts)
    			nginx_accepts;
    			;;
    		handled)
    			nginx_handled;
    			;;
    		requests)
    			nginx_requests;
    	esac
    }
    
    main(){ #主函数
    	case $1 in #分支结构,用于判断用户的输入而进行响应的操作
    		nginx_status) #当输入nginx_status就调用nginx_status_fun,并传递第二和第三个参数
    			nginx_status_fun $2 $3;
    			;;
    		*) #其他的输入打印帮助信息
    			echo $"Usage: $0 {nginx_status key}"
    	esac
    }
    
    main $1 $2 $3
    
  • 相关阅读:
    内存使用过高点检checklist
    Ubuntu linux系统下 su:出现: authentication failure的解决办法
    static完全解析
    C语言开发规范
    单片机、ARM、PC程序执行介质区别
    2021来了,一份小菜鸡的2020总结!
    Linux命令进阶篇-文件查看与查找
    LINUX常用命令(二)
    Linux常用命令(一)
    百钱百鸡
  • 原文地址:https://www.cnblogs.com/eddie1127/p/14182960.html
Copyright © 2020-2023  润新知