java 间断执行多条命令ssh连接,有缺陷
来源:互联网 发布:收银机软件免费 编辑:程序博客网 时间:2024/05/21 02:50
废话不说直接上代码:
package com.guoru;
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;
public class ShellUtils {
/**
* 创建session
* @param host 主机名称/ip地址
* @param user 登陆用户名
* @param psw 密码
* @param port 端口
* @return
*/
public static Session getSession(String host,String user,String psw,int port){
JSch jsch=new JSch();
Session session=null;
try {
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();
} catch (JSchException e) {
System.out.println("连接linux主机失败");
e.printStackTrace();
}
return session;
}
/**
* 得到可以执行命令的连接
* @param session 连接session
* @return 可以执行命令的ChannelExec
*/
public static ChannelExec getChanel(Session session){
ChannelExec openChannel=null;
try {
if(null !=session){
openChannel = (ChannelExec) session.openChannel("exec");
}
} catch (JSchException e) {
e.printStackTrace();
}
return openChannel;
}
/**
*
* @param openChannel
* @param command
* @return
*/
public static String getExcRes(ChannelExec openChannel,String command){
InputStream in =null;
BufferedReader reader=null;
StringBuffer result=new StringBuffer();
try {
try {
openChannel.setCommand(command);
int exitStatus = openChannel.getExitStatus();
System.out.println(exitStatus);
openChannel.connect();
in = openChannel.getInputStream();
reader = new BufferedReader(new InputStreamReader(in));
String buf = null;
while ((buf = reader.readLine()) != null) {
result.append(new String(buf.getBytes("gbk"),"UTF-8")+"<br>\r\n");
}
//reader.close();
} catch (JSchException e) {
result.append(e.getMessage());
e.printStackTrace();
}
} catch (IOException e) {
result.append(e.getMessage());
e.printStackTrace();
} finally {
/*try {
//reader.close();
reader.close();
} catch (IOException e) {
e.printStackTrace();
}*/
}
return result.toString();
}
public static void disConnect(Session session,ChannelExec openChannel){
if(session!=null&&!openChannel.isClosed()){
openChannel.disconnect();
}
if(session!=null&&session.isConnected()){
session.disconnect();
}
}
public static void main(String[] args) {
Session session=getSession("192.168.230.129", "请叫我大哥", "root", 22);
ChannelExec chanel=getChanel(session);
String res=getExcRes(chanel, "cd /home;ls;");
System.out.println(res);
ChannelExec chanel2=getChanel(session);
String ss=getExcRes(chanel2, "ls;");
System.out.println(ss);
}
}
这段代码有缺陷,有时候连接不到服务器,而且执行速度太慢,继续去寻找更好的代码和方法!
- java 间断执行多条命令ssh连接,有缺陷
- java连接SSH服务器并执行shell命令
- JAVA实现远程SSH连接linux并执行命令
- java使用ssh连接Linux并执行命令
- JAVA使用JSch进行SSH连接Linux并执行命令
- java通过ssh连接服务器执行shell命令
- Java实现ssh连接linux并执行shell命令
- java使用ssh连接Linux并执行命令
- java通过ssh连接服务器执行shell命令
- JAVA执行多条cmd命令
- JSch连接SSH远程执行命令
- JSch连接SSH远程执行命令
- java中执行多条shell命令,除了第一条其他都未执行
- JAVA利用Runtime执行多条linux命令
- java调用批处理(doc)执行多条命令
- JAVA中执行多条shell/bat命令
- shell 执行多条命令
- bash执行多条命令
- 【自考】——第四次自考的学与思
- Android 传感器开发详解
- IE/FF/Chrome下document.documentElement/body的 scrollHeight/scrollTop/clientHeight 以及判断滚动条是否到达页面底部。
- 第九周项目3(2)----矩阵相加
- EasyUI之对话框Dialog
- java 间断执行多条命令ssh连接,有缺陷
- 【软件项目管理】任务(活动)之间的排序依据主要有:强制性依赖关系、软逻辑关系、外部依赖关系
- R tutorial 16 - Multiple Regression 回归分析 (1)
- LeetCode #438: Find All Anagrams in a String
- echart动态图表
- Shell 脚本简介
- C/C++经典程序训练3---模拟计算器
- spring 发送邮件
- javascript数据结构与算法-简单算法