第二点就是telnet那部分,telnet=`telnet $1 $2`应该就死住没反应了,你手动模拟一下就好了,比如我:
telnet 192.168.243.1 3131
Trying 192.168.243.1...
Connected to 192.168.243.1.
Escape character is '^]'.
^]
telnet>quit
Connection closed.
如果我不键入^](ctrl+])的话,这个telnet进程是不会结束的,不会结束的话,脚本也就不会进行下一步。
while truedo
if [ `ping -c 1 192.168.0.2|grep 100%|wc -l` -ne 0 ]then
echo diaoxian_192.168.0.2 >>log2
fi
done
脚本:
#!/bin/shfilename=domains.txt
ping_count=3
while read domain do
x=$(ping -W 1 -c $ping_count $domain 2>/dev/null | grep -E "(PING)|(loss)")
loss=$(echo "$x" | grep "loss" | awk '{printf "%s", substr($6, 1, length($6)-1)}')
if [ $loss -eq 100 ] then
echo "$x" | grep "PING" | awk '{printf "%s no ping\n", $2}'
else
echo "$x" | grep "PING" | awk '{printf "%s %s\n", $2, substr($3, 2, length($3)-2)}'
fi
done <$filename
可适当调整每个域名 ping 的次数(ping_count),以保证准确度和性能。
数据文件:
cat domains.txt
www.baidu.com
www.taobao.com
www.qq.com
www.baidud.com
结果:
www.baidu.com 14.215.177.38
www.taobao.com 183.61.241.252
www.qq.com 59.37.96.63
www.baidud.com no ping
另:我理解那个“地名”应该是“域名”误写,如果真的需要地名,可以借助 whois 命令,甚至 IP 数据库(比如纯真数据库)。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)