将以下 2 个脚本放在同一路径下, 测试时只需要允许 Run_network_test.sh
- Run_network_test.sh
- #!/bin/bash
- for ip in `cat hosts | awk '{print $1}'` #hosts 为需要测试的主机列表
- do
- echo " "
- echo " " >> final_result
- echo '-------------------'
- echo '-------------------' >> final_result
- echo $ip
- echo $ip >> final_result
- sshpass -p "password" ssh -o StrictHostKeyChecking=no user@$ip bash -s < test_network.sh
- sshpass -p "password" ssh -o StrictHostKeyChecking=no user@$ip "cat /tmp_result" >>final_result
- sshpass -p "password" ssh -o StrictHostKeyChecking=no user@$ip "rm -f /tmp_result" >>final_result
- done
- test_network.sh
- #!/bin/bash
- # 目的主机 IP 列表
- list="192.168.119.117 192.168.119.119"
- for ip in $list
- do
- nc -z $ip 3066 >/dev/null #将命令执行结果全部丢弃, 无论 nc -z $ip 3066 测试结果成功与否, 都不影响 $? 的值
- if [ $? -eq 0 ];then
- echo "`hostname -i ` --> $ip is ok" >>/tmp_result
- else
- echo "`hostname -i ` --> $ip is bad" >>/tmp_result
- fi
- done
测试示例
同样的, nc 可换成 telnettraceroute 等命令
来源: http://www.jianshu.com/p/5b3ffe2a9c7c