除了可以使用ansible自动化运维工具判断主机是否在线以外,还可以通过编写Shell脚本来实现。
1、编写脚本
#! /bin/bash
#测试192.168.81.0/24网段中哪些主机处于开机状态,哪些主机处于关机状态
# #方法一:使用for循环判断
# for i in {1..254}
# do
# ping -c 2 $i 0.3 -w 1 192.168.81.$i &>/dev/null
# if [ $? -eq 0 ];
# then
# echo " 192.168.81.81.$i is up"
# else
# echo " 192.168.81.$i is down "
# fi
# done
# #方法二:使用while循环判断
# i=1
# while [ $i -le 254 ]
# do
# ping -c 2 -i 0.3 -w 1 192.168.81.$i &>/dev/null
# if [ $? -eq 0 ]
# then
# echo " 192.168.81.$i is up "
# else
# echo " 192.168.81.$i is down "
# fi
# let i++
# done
#方法三:使用状态(多进程)判断
#自定义一个函数
myping ( ) {
ping -c 2 -i 0.3 -w 1 $1 &>/dev/null
if [ $? -eq 0 ];
then
echo "192.168.81.$1 is up "
else
echo " 192.168.81.$i is down "