远程连接linux执行命并且返回执行结果
来源:互联网 发布:求购淘宝店 编辑:程序博客网 时间:2024/06/14 09:05
前两天用了使用过一次远程连接执行命令的方法,并且可以通过流的方式 将执行结果读取回来
在这里记录一下这个工具类
依赖包 jsch-0.1.48.jar
package com.ultrapower.project.web.bean;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import com.jcraft.jsch.ChannelExec;import com.jcraft.jsch.JSch;import com.jcraft.jsch.JSchException;import com.jcraft.jsch.Session;/** * SSH工具类 * @author * 2013-4-7 */public class SSHHelper { /** * 远程 执行命令并返回结果调用过程 是同步的(执行完23才会返回) * @param host主机名 * @param user用户名 * @param psw密码 * @param port端口 * @param command命令 * @return */ public static String exec(String host,String user,String psw,int port,String command){ String result=""; Session session =null; ChannelExec openChannel =null; try { JSch jsch=new JSch(); session = jsch.getSession(user, host, port); java.util.Properties config = new java.util.Properties(); config.put("StrictHostKeyChecking", "no"); session.setConfig(config); session.setPassword(psw); session.connect(); openChannel = (ChannelExec) session.openChannel("exec"); openChannel.setCommand(command); int exitStatus = openChannel.getExitStatus(); System.out.println(exitStatus); openChannel.connect(); InputStream in = openChannel.getInputStream(); BufferedReader reader = new BufferedReader(new InputStreamReader(in)); String buf = null; while ((buf = reader.readLine()) != null) { result+= new String(buf.getBytes("gbk"),"UTF-8")+" <br>\r\n"; } } catch (JSchException | IOException e) { result+=e.getMessage(); }finally{ if(openChannel!=null&&!openChannel.isClosed()){ openChannel.disconnect(); } if(session!=null&&session.isConnected()){ session.disconnect(); } } return result; } public static void main(String args[]){ String exec = exec("192.168.0.144", "root", "root", 22, "cd agent;ps -ef|grep apache-flume"); System.out.println(exec); }}
这个方法具有一定局限性,每次做命令执行的前提是你得知道对方主机的用户名 密码,这一点就导致了 ,这个方法不能广泛的使用。因为想用户名和密码这种东西 人家是不会随随便便提供给你的。
0 0
- 远程连接linux执行命并且返回执行结果
- 运行exe文件并且返回执行结果
- python 使用ssh远程登录并执行命令返回结果
- Java7并发编程--4.2、在执行器中执行任务并且返回结果
- Java7并发编程--4.4、在执行器中执行任务并且返回结果
- 在android中如何编译连接 .c 的可执行文件 Android点滴(1) -- 执行Linux命令并且获得输出的结果
- Linux下远程连接windows,执行命令
- 执行sql 返回 参数结果
- 返回os命令执行结果
- Java执行Linux命令并返回命令结果
- Java执行Linux命令并返回命令结果
- linux的C获取shell执行返回的结果
- java调用linux中的shell脚本并返回执行结果
- Java执行Linux命令并返回命令结果
- Java执行Linux命令并返回命令结果
- Linux C 执行shell命令并获取返回结果
- linux Shell编程--获取命令执行返回结果
- Java远程连接Linux系统并执行Linux命令
- Core Image
- iOS,数据库的使用(FMDB库的使用和配置)
- 快速排序
- str_replace中的匹配空白符,必须用双引号
- 用人类的思维方式去写更容易维护的代码——用<抽象-基础-逻辑>模式开发Java(Android)程序
- 远程连接linux执行命并且返回执行结果
- Redis 有序集合(sorted set)
- Java学习第8天(3):面向对象-继承-final
- Back Track 5 之 Web踩点 && 网络漏洞
- 史上最全AndroidStudio快捷键中文版
- makefile中的CFLAGS与LDFLAGS
- 2015CSDN下载热门书籍
- JS原型链 new 与 Object.Create()区别 代码及继承的方法
- Back Track 5 之 漏洞攻击 && 密码攻击 && Windows下渗透工具