使用JSch在远程服务器中执行wget

时间:2013-12-20 13:52:20

标签: java jsch

我正在尝试使用JSch库执行一系列命令,所有内容都使用SSH:

  1. “cd / root / downloads /”
  2. “wget mydownloadlink / file.rar”
  3. “scp -f file.rar”
  4. 但这不起作用,看看我的代码是否平静:

    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();
    

1 个答案:

答案 0 :(得分:0)

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