您好我正在尝试ssh到4台服务器,但我只是进入第一台而不是其他服务器。如果有人能告诉我这个代码中哪里出错了。
try {
File f = new File("/usr/site/html/Output.txt");
BufferedWriter output = new BufferedWriter(new FileWriter(f));
out.println(f.getPath());
String Servers[] = {"root@a1.xyz.com","root@a2.xyz.com","root@a3.xyz.com","root@a4.xyz.com"};
for(int i =0;i<Servers.length;i++){
Process p = Runtime.getRuntime().exec("ssh "+Servers[i]);
output.write("\nI'm In"+Servers[i]);
String s = "exit";
byte[] byteS = s.getBytes();
p.getOutputStream().write(byteS);
output.write("\nI'm logged out ");
output.close();
}
到目前为止,我只能登录第一个。有什么建议??
由于
答案 0 :(得分:2)
这可能无法解决您的问题,但从首次查看代码开始,您将关闭循环中的输出。写入已关闭的输出的任何atttemp都应该给出运行时错误。将output.close()
移出for循环。
答案 1 :(得分:0)
检查进程的退出值并确保其为0.此外,使用Process对象的waitFor方法可能是个好主意,因为它会使线程等待直到当前进程终止。