1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

Executar comando de um servidor especifico remotamente utilizando o ssh

Boa tarde pessoa! Vocês conhecem o netterm ou o putty, pois bem eles são programas que conseguem conectar a uma máquina remotamente e executar comandos de terminal, no meu caso no unix. Preciso de ajuda para executar alguns comandos no unix remoto, já consigo conectar a essa máquina pela biblioteca orion, e também consigo executar comandos simples como copiar, colar, mover, pesquisar entre outros, porém o que eu realmente preciso é executar comandos de um serviço especifico, um exemplo quero usar o psql (não é esse serviço, mas é parecido). Aqui vai o código que eu já tenho:

lib: orion-ssh2-214.jar;


package main;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import com.trilead.ssh2.Connection;
import com.trilead.ssh2.Session;
import com.trilead.ssh2.StreamGobbler;

public class StdoutAndStderr {
  public static void main(String[] args) {
    String hostname = "652.451.23.9";//maquina
    String username = "userServico";//usuário da máquina e também do serviço
    String password = "passuserServico";//senha do usuário
    try {
      Connection conn = new Connection(hostname);
      conn.connect();
      boolean isAuthenticated = conn.authenticateWithPassword(username, password);

      if (isAuthenticated == false) {
        throw new IOException("Authentication failed.");
      }
      Session sess = conn.openSession();
      sess.execCommand("cd; pwd;");//acho que devo colocar aqui o comando para 
      //usar o serviço

      InputStream stdout = new StreamGobbler(sess.getStdout());
      InputStream stderr = new StreamGobbler(sess.getStderr());

      BufferedReader stdoutReader = new BufferedReader(new InputStreamReader(stdout));
      BufferedReader stderrReader = new BufferedReader(new InputStreamReader(stderr));

      while (true) {
        String line = stdoutReader.readLine();
        if (line == null) {
          break;
        }
        System.out.println("stdoutReader: " + line);
      }

      while (true) {
        String line = stderrReader.readLine();
        if (line == null) {
          break;
        }
        System.out.println("stderrReader: " + line);
      }

      sess.close();
      conn.close();

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

quando eu coloco o comando para executar o serviço ele diz: not found, bem se o netterm ou putty consegue o java também consegue. Obrigado.

  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

1 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags unix ssh ou faça a sua própria pergunta.