複製代碼 代碼如下:
 
 
#!/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