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
    
  • 相关阅读:
    B树和B+树的插入、删除图文详解
    使用limit分页查询时,做delete操作,会导致丢失数据
    【转载】研发应该懂的binlog知识(下)
    【转载】研发应该懂的binlog知识(上)
    OOM排除与JVM调优
    Intellij IDEA集成JProfiler性能分析神器
    Java程序内存分析:使用mat工具分析内存占用
    mysql 查询结果为空时值时执行后面的sql语句
    mysql 无数据插入,有数据更新
    C# 超大数据量导入 SqlBulkCopy
  • 原文地址:https://www.cnblogs.com/eddie1127/p/14182960.html
Copyright © 2011-2022 走看看