[Shell] Ping host status

本文介绍了一个使用Shell脚本来定期检查多个IP地址连通性的示例。通过配置文件指定待检查的主机列表,该脚本能够利用ping命令检测这些主机的可达性,并将丢包率超过0%的结果记录到日志文件中。最后,如果日志文件非空,则通过邮件通知管理员。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.Shell脚本
[mon@oracle6 source]$ more mon_host_stat 
#!/bin/bash
datetime=`date +"%Y/%m/%d %H:%M:%S"`
DATA=/home/mon/source/config/mon_host_stat.data
COUNT=4
LOG=/home/mon/data/mon_host_stat.log
echo -n "" > $LOG
cat $DATA | while read LINE
do
   IP=`echo $LINE | awk '{print $1}'`
   HOSTNAME=`echo $LINE | awk '{print $2}'`

   RESULT=`ping $IP -c $COUNT | grep "packet loss" | awk '{print $6}'  | sed 's/%//g'`
   
   if [ $RESULT -gt 0 ];then
      echo "$HOSTNAME   $IP  $RESULT% Lost Packet" >> $LOG
   fi
done
if [ -s $LOG ];then
   echo "$LOG Is not null"
   cat $LOG | mutt -s "Ping Host Check Status" tolilong@163.com
else
   echo "$LOG Is null"
fi


配置文件
[mon@oracle6 config]$ pwd
/home/mon/source/config
[mon@oracle6 config]$ more mon_host_stat.data 
xxx.16.99.35    oracle6
xxx.16.99.19    oracle
xxx.16.99.20    xxxxxxx
xxx.168.169.120 standby
xxx.168.169.121 xxxxxxx1
xxx.168.169.122 xxxxxxx2
xxx.168.169.133 abcd


2.crontab job
[mon@oracle6 config]$ crontab -l
###############ping host check status############################
00,5,10,15,20,25,30,35,40,45,50,55 * * * * /home/mon/source/mon_host_stat > /dev/null 2>&1

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/24237320/viewspace-2059751/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/24237320/viewspace-2059751/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值