zabbix 短信猫发送告警脚本,增加发送结果检测和失败重试

背景:在内网zabbix监控搭配短信猫使用中,发现有告警短信发送失败的情况。根据业务和日志分析得出,有其他设备同时使用短信猫,导致短信猫设备被占用,进而告警短信发送失败。

解决办法:加入告警短信发送结果检测功能,如果发现短信发送失败则休眠5秒(可调整),再次尝试发送短信,循环3次(可调整)。

脚本如下:

脚本放置路径和名称,根据zabbix_server的配置文件来存放和命名。

#!/bin/bash
#By 王刚
#Date 20190711
#SMS with gnokii

PATH=/bin:/sbin/:/usr/bin:/usr/sbin:/usr/local/bin/
export LANG=en_US.UTF-8
LOGFILE='/zabbix_tmp/zabbix_sms.log'
DT=$(date +%F' '%T)
i=1

echo "***************************START:$DT************************************" >> $LOGFILE
echo 'Recipient='$1'' >> $LOGFILE
echo 'Subject='$2'' >> $LOGFILE
echo 'Message='$3'' >> $LOGFILE
echo `` >> $LOGFILE
MOBILE_NUMBER=`echo "$1"`

# Log it
echo 'Send Command:' >> $LOGFILE
echo 'echo  -e $3 | sudo /usr/local/bin/gnokii --sendsms $MOBILE_NUMBER ' >> $LOGFILE
echo `` >> $LOGFILE

# Send it
echo 'Sending Process:' >> $LOGFILE
echo  -e "$3" | sudo  /usr/local/bin/gnokii --sendsms "$MOBILE_NUMBER" 1>>$LOGFILE 2>&1

#checking sms_send result.Try 3 times,if send sms failed.
while [ $? -ne 0 ] && [ $i -le 3 ];do
    sleep 5
    let i++
    echo  -e "$3" | sudo  /usr/local/bin/gnokii --sendsms "$MOBILE_NUMBER" 1>>$LOGFILE 2>&1
done

echo `` >> $LOGFILE

#EOF
DT=$(date +%F' '%T)
echo "***************************STOP:$DT************************************" >> $LOGFILE
echo -e '\n' >> $LOGFILE

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值