2015-12-30 95 views
0

你好我目前使用下面的代码行发出命令到远程服务器问题在JSch使用SFTP

ChannelSftp sftp = (ChannelSftp)session.openChannel("sftp");

sftp.connect();

System.out.println("Current Directory: " + sftp.pwd()); <任何命令=该行

但pwd已经被定义为类ChannelSftp中的方法,我的问题是如果我想发出一些命令或运行任何不是JSch中的方法的.sh文件?

假设我想运行:sudo /opt/bin/run.sh文件。

或者是有,我可以用它来完成这项工作

(请注意我有一个跳跃服务器在本地主机和Web服务器之间。网站服务器只能通过跳跃server.So访问的任何方法是我没有使用exec或shell的原因)。

回答

1

ChannelSftp类正在实现SFTP协议,该协议可以预制FTP操作。 通过SFTP显然不允许执行随机命令。在这种情况下,您需要使用不同类的jsch库:ChannelExec

示例为here