通过linuxjishu/14094.html target=_blank class=infotextkey>ping命令自动定时检测主机状态的shell/ target=_blank class=infotextkey>shell脚本。
代码如下:
复制代码 代码示例:
#!/bin/bash
# ping /etc/hosts
# edit by www.jb200.com
Curdate=`date +%d%m%y`
CurPath='/tmp'
trap "delfile" 2
function delfile(){
if rm -f $CurPath/result.$Curdate ;then
echo "Del result.$Curdate ok"
exit 1
else
echo "program error~please check!"
exit 1
fi
}
for Loop in `cat /etc/hosts|grep -v "^#"|cut -f1`
do
ping -s 1000 -c1 $Loop>$CurPath/result.$Curdate
echo "Now,read?[y|n]"
read NFS
case $NFS in
y|Y)
Vue=`cat /tmp/result.$Curdate|
sed -n '2p'`
if [ "$Vue" = "" ];then
echo "$Loop shutdown!"
else
echo $Vue
fi
;;
n|N)
;;
esac
rm -f $CurPath/result.$Curdate
done
代码说明:
以上代码主要是ping /etc/hosts中的主机,用来检测存活状态,并保存检测结果。
此脚本,每ping一个主机前会给出提示,只有输入y,确认后,才会进行下一步的检测。
有兴趣的朋友,可以稍加修改,即可检测任意IP地址或网段中的主机。
调用示例,如下图:
通过实例来看,误差不小,可能是根据当前的网络环境有关。