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 $listdo#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...." fidone
方法二:while循环
#!/bin/bash############################while循环探测主机是否存活#############################这里read ip实际上读的结尾的ip.txt文件while read ipdo#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....." fidone < ip.txt
注:ping不同不代表不存活,也可能不给ping,需要多工具去判断。