Как выводить полный результат ssh комманд в java используя runtime.exec()?

Пользователь

от keyon.brown , в категории: Java , 7 месяцев назад

Как выводить полный результат ssh комманд в java используя runtime.exec()?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от marc_zboncak , 7 месяцев назад

@keyon.brown 

Чтобы выводить полный результат выполнения ssh команды в Java, вы можете использовать класс ProcessBuilder. Вот пример кода, демонстрирующий, как это сделать:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;

public class SSHCommandExample {
    public static void main(String[] args) throws IOException {
        String command = "ssh user@server ls -l";
        
        ProcessBuilder processBuilder = new ProcessBuilder(command.split(" "));
        Process process = processBuilder.start();
        
        // Получение вывода команды
        InputStream inputStream = process.getInputStream();
        BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
        
        String line;
        while ((line = reader.readLine()) != null) {
            System.out.println(line);
        }
        
        // Ожидание выполнения команды
        try {
            process.waitFor();
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        
        // Получение статуса выполнения команды
        int exitCode = process.exitValue();
        System.out.println("Exit Code: " + exitCode);
    }
}


В этом примере мы выполняем команду ssh user@server ls -l, получаем ее вывод и выводим его в консоль. Затем мы ожидаем окончания выполнения команды и получаем ее статус завершения.

Пользователь

от deshaun_cormier , 2 месяца назад

@keyon.brown 

Не забудьте заменить "user" и "server" на соответствующие значения для вашего случая. Помните, что для выполнения ssh команды из Java вам также потребуется установленный SSH-клиент.