通过Ssh协议连接到服务器执行执行的指令

通过Ssh协议连接到服务器执行执行的指令。echo $?这条命令将显示上条指令执行的状态。0为成功,其他都是失败。

代码如下:

/**
 * 
 */
package j2ssh;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStream;

import com.sshtools.j2ssh.SshClient;
import com.sshtools.j2ssh.authentication.AuthenticationProtocolState;
import com.sshtools.j2ssh.authentication.PasswordAuthenticationClient;
import com.sshtools.j2ssh.session.SessionChannelClient;

/**
 * @author lgli
 *
 */
public class TestCommand
{

    /**
     * @param args
     */
    public static void main(String[] args)
    {

        SshClient ssh = new SshClient();
        PasswordAuthenticationClient authentication = new PasswordAuthenticationClient();
        authentication.setUsername("avatar");
        authentication.setPassword("123456");
        try
        {
            ssh.connect("172.16.101.166", 22);
                   if (ssh.authenticate(authentication) == AuthenticationProtocolState.COMPLETE)
            {
                SessionChannelClient session = ssh.openSessionChannel();
                // session.setEnvironmentVariable("TERM", "linux");
                // if (client.requestPseudoTerminal("vt100", 120, 400, 0, 0,
                // "")) {
                if (session.startShell())
                {
                    OutputStream writer = session.getOutputStream();
                    writer.write("echo $?\n".getBytes());
                    writer.flush();
                    writer.write("exit\n".getBytes());
                    writer.flush();
                    BufferedReader in = new BufferedReader(new InputStreamReader(session.getInputStream()));
                    BufferedReader err = new BufferedReader(new InputStreamReader(session.getStderrInputStream()));
                    String line;
                    while ((line = in.readLine()) != null)
                    {
                        System.out.println(line);
                    }
                    System.out.println("------------------------");
                    while ((line = err.readLine()) != null)
                    {
                        System.out.println(line);
                    }
                    if (session != null)
                    {
                        session.close();
                    }
                }
                // }
            }
        }
        catch (IOException e)
        {
            e.printStackTrace();
        }
        finally
        {
        }

    }

}

你可能感兴趣的:(java,linux,ssh)