zoukankan      html  css  js  c++  java
  • nagios插件之登陆SBC监控电话数

    运行:sbc_calls_status_new auto_ssh_sbc_10_17.sh | auto_ssh_sbc_11_17.sh

    vi sbc_calls_status_new.c

    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include <time.h>
    
    #define OK       0
    #define WARNING  1
    #define CRITICAL 2
    #define UNKNOWN  3
    
    #define LEN 1000
    #define MIN_LEN 20
    
    #define SHORT_TIME 1		// unit of minute
    #define LONG_TIME 10		// unit of minute
    
    //#define TCL_CMD "/home/weihu/tcl/"
    #define TCL_CMD "/usr/local/nagios/libexec/"
    
    #define SBC_GG_SHORT_TIME_FILE "/usr/local/nagios/libexec/sbc_gg_call_short_time_file.tmp"
    #define SBC_YZ_SHORT_TIME_FILE "/usr/local/nagios/libexec/sbc_yz_call_short_time_file.tmp"
    //#define SBC_SHORT_TIME_FILE "/home/tssp/sbc/sbc_call_short_time_file.tmp"
    
    #define SBC_GG_LONG_TIME_FILE "/usr/local/nagios/libexec/sbc_gg_call_long_time_file.tmp"
    #define SBC_YZ_LONG_TIME_FILE "/usr/local/nagios/libexec/sbc_yz_call_long_time_file.tmp"
    //#define SBC_LONG_TIME_FILE "/home/tssp/sbc/sbc_call_long_time_file.tmp"
    
    int exitstatus=OK;
    char *exit_status[4]={"OK","WARNING","CRITICAL","UNKNOWN"};
    
    char status_information[LEN];
    char performance_data[LEN];
    
    //char sbc_gg_old_value[MIN_LEN]={0};
    //char sbc_yz_old_value[MIN_LEN]={0};
    
    int read_time_file(int minute,char *file) {
    	int ret;
    	FILE *fp;
    	char *ch;
    	char readbuf[20]={0};
    
    	int now_minute=0;
    
    //	fp=fopen(file,"a+");
    	fp=fopen(file,"r+");
    	if(fp==NULL) {
    		fprintf(stderr,"fopen() error.
    ");
    		return -1;
    	}
    
    	ch=fgets(readbuf,20,fp);
    	if(ch==NULL) {
    		fprintf(stderr,"fgets() error.
    ");
    	//	return -1;
    	}
    	printf("readbuf=%s
    ",readbuf);
    
    	now_minute=atoi(readbuf);
    	printf("now_minute=%d
    ",now_minute);
    
    	if(!strcmp(readbuf,"")) {
    		if(minute==SHORT_TIME) {
    			if(now_minute<SHORT_TIME-1) {
    				exitstatus=WARNING;
    			}
    			else if(now_minute>=SHORT_TIME-1) {
    				exitstatus=CRITICAL;	
    			}
    		}
    		else if(minute==LONG_TIME) {
    		/*	if(now_minute<LONG_TIME-1) {
    				exitstatus=WARNING;
    			}
    			else if(now_minute>=LONG_TIME-1) {
    		*/
    			if(now_minute>=LONG_TIME-1) {
    				exitstatus=CRITICAL;	
    			}
    		}
    
    		fprintf(fp,"%s","1");
    		printf("file is null,value=1
    ");
    	}
    	else {
    		if(minute==SHORT_TIME) {
    			if(now_minute<SHORT_TIME-1) {
    				exitstatus=WARNING;
    
    				ret=fseek(fp,0,SEEK_SET);
    				fprintf(fp,"%d",++now_minute);
    
    				/*
    				fclose(fp);
    
    				fp=fopen(file,"w+");
    				fprintf(fp,"%d",now_minute++);
    				*/
    			}
    			else if(now_minute>=SHORT_TIME-1) {
    				exitstatus=CRITICAL;	
    
    				ret=fseek(fp,0,SEEK_SET);
    				fprintf(fp,"%d",++now_minute);
    			}
    		}
    		else if(minute==LONG_TIME) {
    			if(now_minute<LONG_TIME-1) {
    			//	exitstatus=WARNING;
    				exitstatus=OK;
    
    				ret=fseek(fp,0,SEEK_SET);
    				fprintf(fp,"%d",++now_minute);
    			}
    			else if(now_minute>=LONG_TIME-1) {
    		//	if(now_minute>=LONG_TIME-1) {
    				exitstatus=CRITICAL;	
    
    				ret=fseek(fp,0,SEEK_SET);
    				fprintf(fp,"%d",++now_minute);
    			}
    		}
    	}
    
    	ret=fclose(fp);
    	if(ret!=0) {
    		fprintf(stderr,"fclose() error.
    ");
    		return -1;
    	}
    
    	return 0;
    }
    
    int parse_cmd(char *sh_cmd,char *active_count,char *high_count,char *total_count) {
    	int ret;
            FILE *fp;
    
            char tmpbuf[LEN];
            char readbuf[LEN];
    
            char *p,*str;
    
    	int i=0;
    	int line=0;
    	int mark1=0;
    	int mark2=0;
    
    //	fp=popen("/home/neo/check_log/tcl/auto_ssh.sh","r");
            fp=popen(sh_cmd,"r");
            if(fp==NULL) {
                    fprintf(stderr,"popen() error. ");
                    exitstatus=CRITICAL;
                    printf("%s: - %s | %s
    ",exit_status[exitstatus],status_information,performance_data);
                    exit(exitstatus);
            }
    
            while(fgets(readbuf,LEN,fp)!=NULL) {
    	//	line++;
    		if(strstr(readbuf,"SIP Sessions")) {
    			memset(tmpbuf,0,LEN);
    			strcpy(tmpbuf,readbuf);
    		//	printf("%s",tmpbuf);
    
    			for(p=strtok(tmpbuf," ");p;p=strtok(NULL," "),i++) {
    				if(i==2) {
    				//	printf("%s
    ",p);
    					strcpy(active_count,p);
    				}
    				if(i==3) {
    				//	printf("%s
    ",p);
    					strcpy(high_count,p);
    				}
    				if(i==4) {
    				//	printf("%s
    ",p);
    					strcpy(total_count,p);
    					break;
    				}
    			}
    		}
    
    		if(i==4) { 
    			break;
    		}
    /*
    		line++;
    	//	printf("line=%d,readbuf=%s",line,readbuf);
    
    		if(line==3) {
    			for(p=strtok(readbuf," ");p;p=strtok(NULL," ")) {
    				//      str=p;
    
    				//Sun
    				mark1++;
    
    				if(mark1==2) {
    				//	printf("p=%s
    ",p);
    
    					strcpy(active_status,p);
    				//	printf("active_status=%s
    ",active_status);
    				}
    			}
    		}
    
    		if(line==4) {
    			for(p=strtok(readbuf," ");p;p=strtok(NULL," /")) {
    				mark2++;
    
    				if(mark2==2) {
    				//	printf("p=%s
    ",p);
    
    					strcpy(active_ip_addr,p);
    				//	printf("active_ip_addr=%s
    ",active_ip_addr);
    				}
    			}
    
    			break;
    		}
    */
            }
    
  • 相关阅读:
    Xcode编译WebDriverAgentRunner报错:The bundle identifier for IntegrationApp.app couldn’t be read.解决方案
    python+django更新表结构执行相关命令报错:No installed app with label 'interface_crud'解决方案
    python激活虚拟环境env报错:no such file or directory: env/Scripts/activate解决方案
    Django创建api_crud app时报错:file "manage.py", line 16 ) from exc ^ SyntaxError: invalid syntax解决方案
    Redis未授权访问漏洞复现
    逻辑漏洞小结之SRC篇
    Linux下清空用户登录记录和命令历史的方法
    linux下直接清空日志的方法
    Linux Hackers/Suspicious Account Detection
    linux查看所有用户信息
  • 原文地址:https://www.cnblogs.com/yxysuanfa/p/7212189.html
Copyright © 2011-2022 走看看