java 连接Linux服务器并执行命令
来源:互联网 发布:李天一狱中生活 知乎 编辑:程序博客网 时间:2024/04/28 12:45
package com.zhx.util;import ch.ethz.ssh2.Connection;import ch.ethz.ssh2.Session;import ch.ethz.ssh2.StreamGobbler;import com.sun.deploy.util.StringUtils;import com.sun.org.apache.regexp.internal.RE;import java.io.*;public class RemoteExecuteCommond { //字符编码 private static String DEFAULTCHART ="utf-8"; private static Connection conn; private String ip; private String userName; private String userPwd; public String getIp() { return ip; } public void setIp(String ip) { this.ip = ip; } public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; } public String getUserPwd() { return userPwd; } public void setUserPwd(String userPwd) { this.userPwd = userPwd; } public RemoteExecuteCommond(String ip, String userName, String userPwd) { this.ip = ip; this.userName = userName; this.userPwd = userPwd; } public RemoteExecuteCommond() { } /** * 远程登录Linux主机 * @return * */ public boolean login() { boolean flag =false; conn = new Connection(ip); try { conn.connect(); flag=conn.authenticateWithPassword(userName,userPwd); if(flag) { System.out.println("认证成功"); } }catch (IOException e){ e.printStackTrace(); } return flag; } /** * 远程执行shell脚本或命令 * */ public String execute(String cmd) { String result=""; try{ if(login()) { Session session = conn.openSession(); session.execCommand(cmd); result = processStdout(session.getStdout(),DEFAULTCHART); if(result.equals("") || result==null){ result = processStdout(session.getStderr(),DEFAULTCHART); } conn.close(); session.close(); } }catch (Exception e){ e.printStackTrace(); } return result; } public String executeSuccess(String cmd) { String result=""; try{ if(login()) { Session session = conn.openSession(); session.execCommand(cmd); result = processStdout(session.getStdout(),DEFAULTCHART); conn.close(); session.close(); } }catch (Exception e){ e.printStackTrace(); } return result; } /** * 解析脚本执行返回的结果集 * */ public static String processStdout(InputStream is,String charset) { InputStream inputStream = new StreamGobbler(is); StringBuffer sb = new StringBuffer(); try{ BufferedReader br = new BufferedReader(new InputStreamReader(inputStream,charset)); String line =null; while ((line = br.readLine()) !=null){ sb.append(line +"\n"); } }catch (UnsupportedEncodingException e){ e.printStackTrace(); }catch (IOException e){ e.printStackTrace(); } return sb.toString(); } public static void main(String[]args) { RemoteExecuteCommond rec = new RemoteExecuteCommond("192.168.0.168","root","root"); try { if (rec.login()) { System.out.println("-------- 启动连接--------"); Session session = conn.openSession(); session.execCommand("cd /home/ubuntu/Desktop/music_rec/user_sim"); String result = processStdout(session.getStdout(),DEFAULTCHART); if(result.equals("")|| result==null){ System.out.println("--------出错啦--------"); result=processStdout(session.getStderr(),DEFAULTCHART); } System.out.println(result); session.close(); } }catch (Exception e){ e.printStackTrace(); } }}
阅读全文
0 0
- java 连接Linux服务器并执行命令
- java 连接Linux服务器并执行指令
- java连接SSH服务器并执行shell命令
- Java远程连接Linux系统并执行Linux命令
- JAVA实现远程SSH连接linux并执行命令
- java使用ssh连接Linux并执行命令
- JAVA使用JSch进行SSH连接Linux并执行命令
- Java实现ssh连接linux并执行shell命令
- java使用ssh连接Linux并执行命令
- Python之连接linux并执行命令
- java通过代码登录远程linux服务器并执行linux命令
- Java中通过jsch来连接远程服务器执行linux命令
- windows 下 java程序jsch连接远程linux服务器执行shell命令
- 使用JSCH连接Linux服务器-执行linux命令
- 自动化 远程登陆linux服务器并执行命令 —— expect
- python ssh 批量连接linux服务器执行命令
- Java执行Linux命令并返回命令结果
- Java执行Linux命令并返回命令结果
- 51nod 1163 最高的奖励 贪心+优先队列
- 开发过程中沟通的重要性
- Spring 四种依赖注入
- UE4 HTC VIVE 多人联机
- 如何让测试少加班?阿里Mock平台使用方法揭秘!
- java 连接Linux服务器并执行命令
- zip压缩工具、tar打包和打包压缩
- css3 Transition动画执行时有可能会出现闪烁的bug
- Webview常见的一些坑
- 【云星数据---mesos实战系列002】:mesos全分布式部署实战006--mesos全分布式部署方案
- learn opencv -Windows上安装Dlib
- Android Notification动态显示通话时间
- sqlserver汉字转全拼
- 汪君华:公司领导还不能骂人吗