nagios 监控xenserver 温度

 
 
  cat  check_xen_temp.sh
#!/bin/bash
 
 
ipmitool sensor |  gawk  -F '|'  '
BEGIN { 
     EXIT=0;
     MSG[0]= "OK: " ;
     MSG[1]= "WARNING: " ;
     MSG[2]= "CRITICAL: " ;
     perf= "" ;
}
 
{ gsub(/\t/, " " ); gsub(/ +/, " " ); gsub(/ +\|/, "|" ); gsub(/\| +/, "|" ) }
 
/^[^|]+\|0x0\|/ { next; };
 
/^[^|]+\|na\|/ { next; };
 
/degrees  C/ {
     THING=$1;
     TEMP=$2;
     OK=$4;
     WARN=$8;
         CRIT=$9;
     if  (OK ~  /ok/ ) {
         MSG[0] = sprintf( "%s %s is %dC," ,MSG[0] ,THING,TEMP);
         perf = sprintf( "%s %s=%d;%d;%d;0;100;" ,perf,THING,TEMP,WARN,CRIT);
         next;
     }
     if  (CRIT !~  /na/  && TEMP>=CRIT) {
         MSG[2] = sprintf( "%s %s is %dC (max %d) "
         MSG[2], THING, TEMP, CRIT);
         perf = sprintf( "%s %s=%d;%d;%d;0;100;" ,perf,THING,TEMP,WARN,CRIT);
         EXIT=2;
         next;
     }
 
     if  (WARN !~  /na/  && TEMP>=WARN) {
             MSG[1] = sprintf( "%s %s is %dC (max %dC, critical at %dC) " ,
         MSG[1], THING, TEMP, CRIT);
         perf = sprintf( "%s %s=%d;%d;%d;0;100;" ,perf,THING,TEMP,WARN,CRIT);
         if  (EXIT=0) EXIT=1;
         next;
     }
     
     MSG[2] = sprintf( "%s %s is %d (%s) " , MSG[2], THING, TEMP, OK);
     perf = sprintf( "%s %s=%d;%d;%d;0;100;" ,perf,THING,TEMP,WARN,CRIT);
     if  (EXIT=0) EXIT=1;
}
 
END {
     gsub(/, *$/, "" ,MSG[EXIT]);
     gsub(/ Temp/, "" ,MSG[EXIT]);
     gsub(/ Temp/, "" ,perf);
     print MSG[EXIT], "|" ,perf;
     exit  EXIT;
}
'


本文出自 “月童” 博客,请务必保留此出处http://littlefive.blog.51cto.com/6440205/1894210

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值