使用Jsch在远程服务器之间传输文件

时间:2016-07-14 09:49:37

标签: java ssh jsch

我有一个要求,我需要登录到unix服务器,执行切换用户,执行一些命令,然后将从这些命令创建的文件scp到另一台服务器。 我能够连接到服务器,执行sudo登录和执行命令但是我无法将文件直接scp到另一台远程服务器。

我正在使用Jsch jar。以下是我的代码。

public void executeChannel(Session session,String command,String pwd,List file)抛出异常{

./runprog.out: error while loading shared libraries: libstdc++.so.5: cannot open shared object file: No such file or directory

command = sudo su -pentaho; cd / dir1 / dir2 /; ls -lrt; SCP 在执行上面的代码时,命令直到ls -lrt正确执行,我可以看到输出。然而,在此之后代码挂起。 代码没有抛出异常,因此我不知道发生了什么。

任何帮助都将受到高度赞赏。

1 个答案:

答案 0 :(得分:0)

原来我没有正确打印putty控制台的输出。我想出了这个问题。解决方案是更改命令。

从命令中删除sudo -S -p'并用sudo su替换原始命令 - 用户-c“我的命令”就可以了。