shell脚本探测主机存活
首先我有一些IP地址在文本中,我需要知道他们所在主机是否存活
[root@localhost shell]# cat ip.txt
47.102.212.99
47.102.212.223
119.3.103.33
225.17.221.123
方法一:使用for循环
#!/bin/bash ############################### ##for循环ping文本中的IP ## ############################## #设置变量 list=`cat $(pwd)/ip.txt` #for循环遍历文本中的内容 for ip in $list do #ping一次,超时时间1秒 混合输出导入到/dev/null,不需要看过程 ping -c 1 -W1 $ip >/dev/null 2>1 #ping成功的返回码为0,echo一个up,ping失败则echodown if [ $? -eq 0 ];then echo "$ip is up...." else echo "$ip is down...." fi done
方法二:while循环
#!/bin/bash ########################### #while循环探测主机是否存活# ########################### #这里read ip实际上读的结尾的ip.txt文件 while read ip do #ping一次,超时时间为1秒,混合输出导入到/dev/null中,不看过程。 ping -c1 -W1 $ip &>/dev/null #ping返回码为0,echo一个up,否则echo down。 if [ $? -eq 0 ];then echo "$ip is up....." else echo "$ip is down....." fi done < ip.txt
注:ping不同不代表不存活,也可能不给ping,需要多工具去判断。