Выполнение wget на удаленном сервере с помощью JSch

Я пытаюсь выполнить последовательность команд, используя библиотеку JSch, все через SSH:

  1. "компакт-диск /корень/загрузки/"
  2. "wget ​​mydownloadlink/file.rar"
  3. "scp -f файл.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();

person Shelly    schedule 20.12.2013    source источник
comment
Вы заставили это работать?   -  person mmaceachran    schedule 12.09.2018


Ответы (1)


channel.connect() выполняет последнюю предоставленную вами команду. Вам нужно создать новый канал exec/connect для каждой команды, которую вы хотите запустить. Вы также должны открыть/получить поток ошибок, потому что в этом случае он, вероятно, показал ошибку.

person Alcanzar    schedule 20.12.2013