SSH на несколько серверов - PullRequest
1 голос
/ 12 июля 2011

Привет. Я пытаюсь подключиться к 4 серверам, но получаю только 1-й, а не остальные. если кто-нибудь может сообщить мне, где я иду не так в этом коде.

try  {    
    File f = new File("/usr/site/html/Output.txt"); 

    BufferedWriter output = new BufferedWriter(new FileWriter(f));

    out.println(f.getPath());

    String Servers[] = {"root@a1.xyz.com","root@a2.xyz.com","root@a3.xyz.com","root@a4.xyz.com"};

    for(int i =0;i<Servers.length;i++){
        Process p = Runtime.getRuntime().exec("ssh "+Servers[i]);
        output.write("\nI'm In"+Servers[i]);
        String s = "exit";
        byte[] byteS = s.getBytes();
        p.getOutputStream().write(byteS);
        output.write("\nI'm logged out ");
        output.close();
    }

Пока я могу войти в первый. Какие-либо предложения??

Спасибо

Ответы [ 2 ]

2 голосов
/ 12 июля 2011

Возможно, это не решит вашу проблему, но с первого взгляда на ваши коды вы закроете вывод в цикле.Любой atttemp для записи в закрытый вывод должен давать ошибку во время выполнения.Переместите output.close() из цикла for.

0 голосов
/ 12 июля 2011

Проверьте выходное значение процесса и убедитесь, что оно равно 0. Также было бы неплохо использовать метод waitFor объекта Process, поскольку он заставляет поток ждать до тех пор, пока текущий процесс не будет завершен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...