#!/bin/bash PING=`which ping` DATE=`date +%Y%m%d%H%M` TAIL=`which tail` LOG=./ping$DATE.log HOSTS="selboo.com.cn 221.130.191.97" COUNT=200 for myHost in $HOSTS do count=$(ping -c $COUNT $myHost | grep ‘loss' | awk -F',' '{ print $3 }' | awk -F “%” ‘{ print $1 }') if [ $count -ge 10 ]; then /bin/echo selboo | mutt -s "$myHost pingispacketloss>10% $DATE" root@selboo.com.cn fi done exit 0
复制上以上内容为ping.sh加入crontab中让其10分钟跑一次,其中发邮件程序为mutt
以下是补充:
linux 的和solaris的居然不一样!
复制代码 代码如下:
#!/bin/sh PingConf='/opt/monitor/newIp' #File where the log will be stored LogDir='/opt/monitor/newLog' #Define the interval time INTERVAL='10' #Define the alarm process ######################################################## proc_main() { while read IpAddress do #ingore any hash signs case $IpAddress in #*);; *) ping -w 20 $IpAddress -c 5 >errtmp$$ # ping $IpAddress -c 10 >errtmp$$ if [ $? = 0 ] ; then rm errtmp$$ else rm errtmp$$ ErrTime=`date +%Y/%m/%d/%H:%M:%S` # echo "$ErrTime"": ""$IpAddress"" cann't be connected">>$LogDir echo "$ErrTime"":""$IpAddress"" cann't be connected ">>$LogDir sleep 1 cp /opt/monitor/newLog /opt/OV/www/htdocs/PingLog/new.html sleep 1 # mail -s "$IpAddress"Cantreach -c 我的email </dev/null play -v 50 /opt/monitor/123.au fi esac done <$PingConf } ########################################################## # execute the proc_main function every the specified time INTERVAL while [ "1" -eq "1" ] do
# execute the proc_main function proc_main # suspend execution for INTERVAL seconds sleep $INTERVAL done