########################################################################
## 问题描述 proversion 有时候会出现断连情况,有部署了一个ping脚本
##此脚本在ping脚本输出异常信息时进行报警,将信息发送到手机
########################################################################
recievers="9779802034218"
serverName=`hostname|sed 's/[a-b]$//'`
homePath=/home/sysMonitor
if [ ! -d ${homePath}/smsbill ]; then
mkdir -p ${homePath}/smsbill
fi
if [ ! -d ${homePath}/smsbill_bak ]; then
mkdir -p ${homePath}/smsbill_bak
fi
if [ ! -f ${homePath}/currentSerial ]; then
echo 0 > ${homePath}/currentSerial
fi
########################################################################
## Send SMS
########################################################################
function sendSMS
{
currentDate=`date +%Y%m%d`
smsDate=`date`
smsContent="$smsContent Time:$smsDate"
messageLenth=`expr length "$smsContent"`
for reciever in `echo $recievers`
do
echo $reciever
lastSerial=`cat $homePath/currentSerial`
currentSerial=`expr $lastSerial + 1`
echo $currentSerial > $homePath/currentSerial
smsbillName=sm${currentDate}_101_${currentSerial}${serverName}.unl
smsbillContent="1 0 $reciever `date +%Y/%m/%d` `date +%T` 1 1 $messageLenth $smsContent"
echo $smsbillContent > ${homePath}/smsbill/${smsbillName}
${homePath}/autoFtp.sh ${smsbillName}
mv ${homePath}/smsbill/${smsbillName} ${homePath}/smsbill_bak/
done
}
########################################################################
## 检查15分钟内指定目录下是否有有指定的异常信息输出
########################################################################
filePaths="/home/provweb/ping/ping_enip/*.log"
fileContents="network unavailable"
function checkFileContents
{
nums=`echo $fileContents|awk -F "[|]" '{print NF}'`
num=0
while [ $num -ne nums ]
do
fileNum=0
num=`expr $num + 1`
filePath=`echo $filePaths|awk -F "[|]" -v num=$num '{print $num}'`
fileContent=`echo $fileContents|awk -F "[|]" -v num=$num '{print $num}'`
fileNum=`grep -r "${fileContent}" ${filePath} | wc -l`
if [ fileNum -ne 0 ]; then
smsContent="Alarm :There are $fileNum times ${fileContent} in ${serverName},please check"
sendSMS
fi
done
}
checkFileContents