java web程序SSH到服务器执行命令

jar包:j2ssh-core-0.2.9.jar

Maven pom.xml

<dependency>
    <groupId>sshtools</groupId>
    <artifactId>j2ssh-core</artifactId>
    <version>0.2.9</version>
</dependency>

登陆主机,查询日志:

private String search(String host,String command){
        SshClient client=new SshClient();
        String queryResult = "";
        try{
            client.connect(host,22,new IgnoreHostKeyVerification());
            //设置用户名和密码
            PasswordAuthenticationClient pwd = new PasswordAuthenticationClient();
            pwd.setUsername("***");
            pwd.setPassword("***");
            int result=client.authenticate(pwd);
            if(result==AuthenticationProtocolState.COMPLETE){//如果连接完成
                logger_.info("==============="+host);
                List<SftpFile> list = client.openSftpClient().ls("/home/backtest/jetty9_serv/jetty-distribution-9.2.10.v20150310/webapp_BackTestYield/log");
                for (SftpFile f : list) {
                    if(f.getFilename().equals("log.txt")){  
                        SessionChannelClient session = client.openSessionChannel();    
                        if (session.startShell()){  
                            ChannelOutputStream writer = session.getOutputStream();    
                            writer.write(command.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;  
                            logger_.info("------------------------");    
                            while ((line = in.readLine()) != null){    
                                queryResult = queryResult + host + " : "+line +"\r\n"; 
                            }    
                            while ((line = err.readLine()) != null){    
                                   logger_.info(line);    
                            }    
                        }  
                    }  
                }
            }
        }catch(IOException e){
            e.printStackTrace();
        }
        
        return queryResult;
    }

 

转载于:https://www.cnblogs.com/jdamoy/p/5178045.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值