ayuda Ganymed ssh2 windows

Iniciado por madara1412, 30 Septiembre 2014, 09:30 AM

0 Miembros y 1 Visitante están viendo este tema.

madara1412

hola estoy realizando una conexión ssh para windows con la libreria Ganymed
la cosa es que no se como ejecutar mas de un comando ala vez

Código (java) [Seleccionar]
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import ch.ethz.ssh2.Connection;
import ch.ethz.ssh2.Session;
import ch.ethz.ssh2.StreamGobbler;
public class asd
{
public static void main(String[] args)
{
String hostname = "192.168.56.2";
String username = "koko";
String password = "koko";
int port =2222;
try
{

Connection conn = new Connection(hostname,port);
conn.connect();

boolean isAuthenticated = conn.authenticateWithPassword(username, password);
if (isAuthenticated == false)
throw new IOException("Authentication failed.");

Session sess = conn.openSession();
Session sesss = conn.openSession();
sess.execCommand("cmd /c dir");

System.out.println("Here is some information about the remote host:");

InputStream stdout = new StreamGobbler(sess.getStdout());
BufferedReader br = new BufferedReader(new InputStreamReader(stdout));
while (true)
{
String line = br.readLine();
if (line == null)
break;
System.out.println(line);
}
System.out.println("ExitCode: " + sess.getExitStatus());
sess.close();
conn.close();
}
catch (IOException e)
{
e.printStackTrace(System.err);
System.exit(2);
}
}
}

madara1412

Hola denuevo una solucion que encontre es ponerle un while o un for antes de que cierre la conexión
no se si este bien ya que esto lo esta haciendo por ahora en windows pero
no se si tambien sirva para un router por ejemplo en donde antes de cambiar una configuracion
ay que poner un comando para indicar que guarde la configuracion actual antes de salir de la session de usuario

Código (java) [Seleccionar]

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import ch.ethz.ssh2.Connection;
import ch.ethz.ssh2.Session;
import ch.ethz.ssh2.StreamGobbler;
public class asd
{
public static void main(String[] args)
{
String hostname = "192.168.56.2";
String username = "koko";
String password = "koko";
int port =2222;
try
{

Connection conn = new Connection(hostname,port);
conn.connect();

boolean isAuthenticated = conn.authenticateWithPassword(username, password);
if (isAuthenticated == false)
throw new IOException("Authentication failed.");
String[]P;
P=new String[3];
P[0]="cmd /c dir";
P[1]="cmd /c mkdir aaaa";
P[2]="cmd /c dir";
int n=0;
while(n<3){
Session sess = conn.openSession();
sess.execCommand(P[n]);

n++;
System.out.println("Here is some information about the remote host:");

InputStream stdout = new StreamGobbler(sess.getStdout());
BufferedReader br = new BufferedReader(new InputStreamReader(stdout));
while (true)
{
String line = br.readLine();
if (line == null)
break;
System.out.println(line);
}

System.out.println("ExitCode: " + sess.getExitStatus());

sess.close();
}

conn.close();
}
catch (IOException e)
{
e.printStackTrace(System.err);
System.exit(2);
}
}
}


aqui esta con el pequeño while que en este caso reproduce en serie los 3 comandos al cmd de mi maquina virtual la cosa esque no entiendo bien si se desconecta y vuelve a conectar para realizar el segundo P[1] o si sige en la misma session