|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
如果您觉得本篇CentOSLinux教程讲得好,请记得点击右边漂浮的分享程序,把好文章分享给你的好朋友们!花了1天的工夫写了一个检测某ip是不是收集流通的剧本,只检测收集是不是流通的功效很简单完成,但加了一些限定功效却欠好完成。
#!/bin/bash
####################################################################################
#本剧本放于异机,利用准时义务检测192.168.10.231是不是收集流通,假如欠亨则发短信告警
#为避免频仍收到短信,对发送短信做了以下限定:
#一小时内只发前三条告警短信,也就是假如收集一向欠亨,则每小时内只发前三条短信。
#本剧本只能检测一个ip是不是收集断开,可在入手下手局部加个轮回,检测多个ip
####################################################################################
#初始化情况变量
source/root/.bash_profile
#邮件发送列表
mail_list=135******xx@139.com,zhangwz@xx.net
#ping三次检测的ip
ping=`ping-c3192.168.1.69|awkNR==7{print$4}`
#假如三次均没ping通,则做以下操纵
if[$ping-eq0]
then
#反省mailinfo文件是不是存在,不存在则创建
if[!-e./mailinfo]
then
touch./mailinfo
fi
#猎取以后主机工夫,用于邮件注释的工夫显现
now_time=`date`
#反省./mailinfo的行数是不是为空,假如为空则间接发送邮件
row_num=`wc-l./mailinfo|cut-c1`
if[$row_num-eq0]
then
echo"发邮件"
echo-e"1.69收集已断开,请反省
告警工夫:$now_time"|mutt-s"1.69告警"$mail_list
#更新最初一次发送工夫
date+%Y%m%d-%H%M>./mailinfo
echo1>>./mailinfo
#假如mailinfo内容不为空,则判别(以后工夫减1小时)是不是年夜于前次发送工夫,假如是则发邮件
else
#猎取前次发邮件的日期和工夫
last_date=`head-1./mailinfo|cut-c1-8`
last_time=`head-1./mailinfo|cut-c10-13`
#猎取1小时前的日期和工夫
current_date=`date+%Y%m%d`
current_time=`date+%H%M`
#盘算以后工夫和前次工夫差异多久,加10#是为了避免0开首的字符被当做8进制盘算
lettime_diff=10#$current_time-10#$last_time
#猎取发送次数
send_times=`tail-1./mailinfo`
#以下四种情形发邮件:
#以后日期>前次日期,能够发,然后发送计数send_times置为1
if["$current_date"-gt"$last_date"]
then
echo"发邮件"
echo-e"1.69收集已断开,请反省
告警工夫:$now_time"|mutt-s"1.69告警"$mail_list
#更新最初一次发送工夫
date+%Y%m%d-%H%M>./mailinfo
echo1>>./mailinfo
fi
#以后日期即是前次日期and本次工夫年夜于前次工夫1小时外,能够发,然后发送计数send_times置为1
if["$current_date"-eq"$last_date"-a$time_diff-ge100]
then
echo"发邮件"
echo-e"1.69收集已断开,请反省
告警工夫:$now_time"|mutt-s"1.69告警"$mail_list
#更新最初一次发送工夫
date+%Y%m%d-%H%M>./mailinfo
echo1>>./mailinfo
fi
#以后日期即是前次日期and发送计数send_times置为1,能够发,然后发送次数加1
if["$current_date"-eq"$last_date"-a$send_times-eq1]
then
echo"发邮件"
echo-e"1.69收集已断开,请反省
告警工夫:$now_time"|mutt-s"1.69告警"$mail_list
#更新最初一次发送工夫
date+%Y%m%d-%H%M>./mailinfo
echo2>>./mailinfo
fi
#以后日期即是前次日期and发送计数send_times置为2,能够发,然后发送次数加1
if["$current_date"-eq"$last_date"-a$send_times-eq2]
then
echo"发邮件"
echo-e"1.69收集已断开,请反省
告警工夫:$now_time"|mutt-s"1.69告警"$mail_list
#更新最初一次发送工夫
date+%Y%m%d-%H%M>./mailinfo
echo3>>./mailinfo
fi
fi
fi
如果您觉得本篇CentOSLinux教程讲得好,请记得点击右边漂浮的分享程序,把好文章分享给你的好朋友们! |
|