Infelzmente eu tenho certeza que tenho que fazer isso.
mas quando um merda de um administrador linux num faz as coisas direito entramos neh -.-
olha eu to avançando no seguinte se alguem puder me dar uma ideia, pois terei que tratar toda a string em memoria.
[code] if (conn.authenticateWithPassword(username, password)){
System.out.println(“entrou”);
Session session = conn.openSession();
session.execCommand(“cat /etc/passwd”);
String str = JOptionPane.showInputDialog(“Usuario”);
int b;
String c="";
String conteudo="";
while((b = session.getStdout().read()) != -1){
c += (char) b;
}
System.out.println(c);
while(c.){//o problema ta aqui eu sei que é ridiculo mas como vou
//a leitura de toda a string?
if(c.contains(str)){
conteudo += "#"+c;
}
else
conteudo+= c;
}
//session.execCommand("echo"+"\""+ conteudo+"\""+" > /etc/passwd");
System.out.println(conteudo);[/code]
talvez essa tarefa sua possa ser feita em java mesmo, mas talvez não pelo ssh … eu sinceramente não sei fazer tudo isso apenas pelo ssh.
talvez vc possa criar uns shellscripts e dispara pelo java como o colega falou ou sei lá… pega o arquivo via ftp edita e envia no pro linux novamente … sei que é tosco mas é apenas uma idéia.
Bem galera ai ta o programa feito pra futuras duvidas
[code]Connection conn = new Connection(hostname);
conn.connect();
if (conn.authenticateWithPassword(username, password)){
System.out.println(“entrou”);
Session session = conn.openSession();
session.execCommand(“cat /etc/passwd”);
String str = JOptionPane.showInputDialog(“Usuario”);
int b;
String c="";
String conteudo="";
while((b = session.getStdout().read()) != -1){
c += (char) b;
}
System.out.println©;
Session s2 = conn.openSession();
String d = c;
Scanner scan = new Scanner©;
String espaco = " ";
while (scan.hasNext()) {
c = scan.nextLine();
if(c.contains(str)){
conteudo += "#"+c+"\n";
//session.execCommand("echo"+"\""+ conteudo+"\""+" > /etc/passwd");
}
else{
conteudo+= c+"\n";
// session.execCommand("echo"+"\""+conteudo+"\""+" > /etc/passwd");
}
}
s2.execCommand("echo "+"\""+conteudo+"\""+" > /etc/passwd");
System.out.println(conteudo);[/code]