zoukankan      html  css  js  c++  java
  • 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
    
  • 相关阅读:
    对cross-env的理解
    【好好学习】mh_h5
    QS工具入门
    vue中用qs传参发送axios请求
    Web API 异常处理
    WEB API Filter的使用以及执行顺序
    RSA/SHA1加密和数字签名算法在开放平台中的应用
    windows上RSA密钥生成和使用
    Cordova Error: cmd: Command failed with exit code ENOENT
    Cordova热更新cordova-hot-code-push
  • 原文地址:https://www.cnblogs.com/eddie1127/p/14182960.html
Copyright © 2011-2022 走看看