2013-12-20 97 views
0

我试图执行使用JSch库命令序列,一切trought SSH:执行远程服务器wget的使用JSch

  1. “CD /根/下载/”
  2. “的wget mydownloadlink/file.rar”
  3. “SCP -f file.rar”

但这不工作,看看我的代码和平:

Channel channel = session.openChannel("exec"); 

      //Enter in directory to download 
      String cdCommand ="cd /root/downloads/"; 
      ((ChannelExec) channel).setCommand(cdCommand); 

      //Execute wget command 
      String wgetCommand = "wget "+linkDownload;   
      ((ChannelExec) channel).setCommand(wgetCommand); 

      // exec 'scp -f rfile' remotely 
      String command = "scp -f " + rfile; 
      ((ChannelExec) channel).setCommand(command); 

      // get I/O streams for remote scp 
      OutputStream out = channel.getOutputStream(); 
      InputStream in = channel.getInputStream(); 

      channel.connect(); 

回答

0

channel.connect()正在执行您提供给它的最后一个命令。您需要为每个要运行的命令创建一个新的通道exec/connect。您还应该打开/检索错误流,因为它可能在此情况下显示错误。