我有一个要求,我需要登录到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正确执行,我可以看到输出。然而,在此之后代码挂起。 代码没有抛出异常,因此我不知道发生了什么。
任何帮助都将受到高度赞赏。
答案 0 :(得分:0)
原来我没有正确打印putty控制台的输出。我想出了这个问题。解决方案是更改命令。
从命令中删除sudo -S -p'并用sudo su替换原始命令 - 用户-c“我的命令”就可以了。