您好我正在使用以下代码行向远程服务器发出命令
ChannelSftp sftp = (ChannelSftp)session.openChannel("sftp");
sftp.connect();
System.out.println("Current Directory: " + sftp.pwd());
< =此行
但是pwd已经被定义为类ChannelSftp中的一个方法,如果我想发出一些命令或运行任何不是JSch中的方法的.sh文件,我的问题是什么?
如果我想运行,请说:sudo /opt/bin/run.sh file。
OR是否有任何可用于完成工作的方法
(请注意我在localhost和web Server之间有一个Jump Server。而且只能通过跳转服务器访问Web服务器。所以这就是我不使用exec或shell的原因。)
答案 0 :(得分:1)
ChannelSftp类正在实施SFTP协议,该协议可用于执行FTP操作。 显然不允许通过SFTP执行随机命令。在这种情况下,您需要使用不同类的jsch lib:ChannelExec。
示例是here。