shell脚本中的ssh超时解决方法

时间:2015-10-08 14:37:04

标签: shell unix ssh timeout

我有一个循环遍历主机列表的脚本

/usr/local/bin/ssh -q -o "StrictHostKeyChecking=no" -o "BatchMode=yes" -n ${host} "/usr/bin/uptime" > /dev/null 2>&1
if [ $? -ne 0 ]
then
echo ${host}:FAILED
fi
fi
done

问题是当它遇到离线的主机时会挂起一段时间。

我在i686-pc-linux-gnu上运行SSH Tectia Server 4.4.12 并且ConnectTimeout选项不可用。

有关解决方法的任何想法吗?

由于

1 个答案:

答案 0 :(得分:0)

使用import java.util.ArrayList; import java.util.List; import java.util.regex.Matcher; import java.util.regex.Pattern; public class Seq { public static void main(String[] args) { String str = "TRANS = 2'b00 to 2'b11"; Matcher matcher = Pattern.compile("2'b\\s*(\\w+)").matcher(str); List<String> range = new ArrayList<String>(); while (matcher.find()) { range.add(matcher.group(1)); } if(range.size() == 2){ List<String> output = new ArrayList<String>(); int start = Integer.parseInt(range.get(0),2); int end = Integer.parseInt(range.get(1),2); for(int i=start; i<=end; i++){ output.add("2'b" + String.format("%02d", Integer.parseInt(Integer.toBinaryString(i)))); } System.out.println(output); // Prints [2'b00, 2'b01, 2'b10, 2'b11] } } } 运算符执行给定时间长度的任务,对进程进行后台处理并终止其PID。

&