运行: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.\n");
return -1;
}

ch=fgets(readbuf,20,fp);
if(ch==NULL) {
fprintf(stderr,"fgets() error.\n");
// return -1;
}
printf("readbuf=%s\n",readbuf);

now_minute=atoi(readbuf);
printf("now_minute=%d\n",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\n");
}
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.\n");
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\n",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\n",p);
strcpy(active_count,p);
}
if(i==3) {
// printf("%s\n",p);
strcpy(high_count,p);
}
if(i==4) {
// printf("%s\n",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\n",p);

strcpy(active_status,p);
// printf("active_status=%s\n",active_status);
}
}
}

if(line==4) {
for(p=strtok(readbuf," ");p;p=strtok(NULL," /")) {
mark2++;

if(mark2==2) {
// printf("p=%s\n",p);

strcpy(active_ip_addr,p);
// printf("active_ip_addr=%s\n",active_ip_addr);
}
}

break;
}
*/
}

nagios插件之登陆SBC监控电话数的更多相关文章

  1. nagios插件之登陆防火墙实现session监控

    ssh_firewall_session.sh -- 登陆防火墙并运行dis session statistics firewall_check_sessions.c -- 调用上面脚本.过滤出ses ...

  2. Nagios配置—添加linux主机监控

    nagios安装请参看:Nginx平台安装Nagios监控服务 下面是我添加linux监控机的过程,如有错误或者不当的地方请指出: 测试环境: 监控主机:nagios+nagios插件+nrpe+网站 ...

  3. 使用nagios插件 check_mysql_health 过程中遇到的error

    使用nagios插件 check_mysql_health 过程中遇到的error 1.如果在运行监控mysql插件的时候遇到了error安装以下依赖包就可以解决: yum install perl- ...

  4. Eclipse下使用GDT插件无法登陆GAE & GDT无法上传JAVA代码

    今天更新github主页的过程中,想使用GAE部署一个Java Web服务来更好的支持网站动态性(关键是利用了免费的GAE资源),结果遇到了2个大问题. 1.GDT插件无法登陆GAE账户 错误1:登陆 ...

  5. 开发人员福利!ChromeSnifferPlus 插件正式登陆 Chrome Web Store

    今天(2014-10-30)下午,ChromeSnifferPlus 插件正式登陆 Chrome Web Store. 在线安装地址: https://chrome.google.com/websto ...

  6. jmeter使用笔记——脚本录制,JMeter使用plugins插件进行服务器性能监控

    脚本录制: 1.badboy录制 2.代理服务器录制 ①工作台添加HTTP代理服务器 ②设置目标控制器,分组,排除模式,包含模式(使用正则表达式筛选) ③设置浏览器,手动设置代理服务器,localho ...

  7. nagios 插件ndoutils 安装配置

    nagios 插件ndoutils 安装配置 原文地址:http://www.cnblogs.com/caoguo/p/5022645.html # Nagios install ndoutils # ...

  8. nagios插件nagiosql安装配置

    nagios插件nagiosql安装配置 # Nagiosql install [root@Cagios ~]# yum install -y libssh2 libssh-devel [root@C ...

  9. JMeter使用plugins插件进行服务器性能监控

    JMeter使用plugins插件进行服务器性能监控 性能测试时,我们的关注点有两部分 1 服务本身:并发响应时间 QPS 2 服务器的资源使用情况:cpu memory I/O disk等 JMet ...

随机推荐

  1. SpriteKit-SKView

    1.暂停这个视图 @property (nonatomic, getter = isPaused) BOOL paused; 2.视图性能的一些参数 @property (nonatomic) BOO ...

  2. 【反省】qqxt第一场考试

    我太蒟了 qwq 这是第一条 2:考试别水群,别乱fake,特别是要避免出现不顾考试时间每件事fake十分钟的情况 3:少想多写,虽然说写数据结构之前一定要先想好但是别墨迹. 4:保持对考试的敬畏,别 ...

  3. 【Luogu】P2657windy数(数位DP)

    题目链接 正式迈入了数位DP的大门…… 心情激动 (看我立个flag,我如果专攻数位DP的话,到wc之前就会有秒数位DP蓝题的能力) 数位DP讲解链接 讲的非常详细,良心博客.比我写的博客加在一起还要 ...

  4. PHP中的验证码类(完善验证码)

    运行结果: <!--vcode.class.php--> <?php class Vcode { private $width; //宽 private $height; //高 p ...

  5. 洛谷 [P1948] 电话线

    二分答案 首先,最大值最小,就是二分答案 #include <iostream> #include <cstdio> #include <algorithm> #i ...

  6. 【CF1025A】Doggo Recoloring(签到)

    题意:给定一个长度为 n 的小写字母串.可以将出现次数大于等于2的字母全部变成另一个小写字母,问最后能否将该小写字母串的所有字母变成同一个字母 n<=1e5 思路: #include<cs ...

  7. 金鹰教程网 FLASH8.0(AS)视频教程(下载地址)自认为最好的一个Flash教程

    原文发布时间为:2008-07-29 -- 来源于本人的百度文章 [由搬家工具导入] 可以用迅雷新建批量任务下载,很方便的。 金鹰教程网 FLASH8.0教学视频 到目前(2008年7月29日21:2 ...

  8. iOS键盘中英文切换键盘高度获取通知方法

    iOS键盘中英文切换键盘高度获取通知方法, 有需要的朋友可以参考下. 注册通知 - (void)viewWillAppear:(BOOL)animated { [super viewWillAppea ...

  9. Android 中图可以用到的图片处理类 BitmapUtils

    Android在实际开发中很多时候都要对图片进行一定的处理,这里总结的BitmapUtils 类包括一下几个功能: 1.Android图片倒影, 2.Android图片模糊处理, 3.Android图 ...

  10. 安装sass的艰难过程

    1.ruby安装 因为sass依赖于ruby环境,所以装sass之前先确认装了ruby.先导官网下载个ruby 在安装的时候,请勾选Add Ruby executables to your PATH这 ...