所以,我有两台Linux机器,我在机器A上运行java代码并运行ssh在机器B上运行一些模拟。有什么方法可以在结束时将结果传回机器A.有计算(我不想使用数据库)。结果主要是每个模块的状态消息,如果它按预期执行。另外如何跟踪机器B的模拟运行状态(我可以检查进程的pid,如果它存在那么作业正在运行,但有没有更好的方法)。机器B有一些安全限制,比如我无法打开端口等。
答案 0 :(得分:1)
使用jSCH
JSch shell = new JSch();
session = shell.getSession(userName, serverIP, 22);
session.setPassword(password);
session.setTimeout(timeout);
java.util.Properties config = new java.util.Properties();
config.put("StrictHostKeyChecking", "no");
session.setConfig(config);
session.connect();
channel = session.openChannel("shell");
input = new InputStreamReader(channel.getInputStream(), encoding);
output = new PrintStream(channel.getOutputStream());
channel.connect();
output.write ("/home/test/runCommand");
// result
while ((ch = input.read () != -1) {....}