java连接ssh执行shell脚本
在liunx上写了一个shell脚本,想通过java去调用这个shell脚本,不知道怎么去调用,在网上说使用process这个进程方式,但是我执行机和我shell脚本都不在同一台电脑,老大说java中可以连接ssh,执行shell脚本,以下代码来自他们以前的项目
public class SSH {
static Connection conn = null;
static String hostname = "XXXiP地址2";
static String username = "root";
static String password = "zhou123";
static int port = 36000;
public static void connect()
throws IOException {
try {
conn = new Connection(hostname,port);
conn.connect();
conn.authenticateWithPassword(username, password);
} catch (Exception e) {
System.out.println("ִ���쳣");
System.out.println("" + e);
}
}
@SuppressWarnings("resource")
public static String execCommand(String command) throws IOException {
connect();
Session session = conn.openSession();
session.execCommand(command);
StreamGobbler stdout = new StreamGobbler(session.getStdout());
BufferedReader br = new BufferedReader(new InputStreamReader((stdout),
"UTF-8"));
String line = "";
while ((line = br.readLine()) != null) {
System.out.println(line);
}
session.close();
return line;
}
@SuppressWarnings("resource")
public static ArrayList<String> execCommandd(String command)
throws IOException {
connect();
Session session = conn.openSession();
session.execCommand(command);
ArrayList<String> array_result = new ArrayList<String>();
StreamGobbler stdout = new StreamGobbler(session.getStdout());
BufferedReader br = new BufferedReader(new InputStreamReader((stdout),
"UTF-8"));
String line;
while ((line = br.readLine()) != null) {
array_result.add(line);
}
session.close();
return array_result;
}
public static void main(String[] args) {
try {
// System.out.println( execCommandd("uname -s -r -v"));
System.out.println( execCommandd("pwd"));//使用的sh方式执行
System.out.println( execCommandd("sh /script/test3.sh"));//使用的sh方式执行
} catch (IOException e) {
e.printStackTrace();
}
}

需要注意,在执行shell脚本时,正常这样就可以实现了

但是你会发现你在代码中这样写,会告诉你连接失败,正常写法是 sh /目录下你的shell脚本,这个也是让我纠结了很久,因为像正常的pwd命令他是可以正常执行,但是一旦是其他就不能执行,就必须要使用sh
java连接ssh执行shell脚本的更多相关文章
- ssh 执行 shell脚本执行jps时:-bash: jps: command not found
转至: https://www.codeleading.com/article/67592908468/ 我构建了hadoop集群.我们一定会写一个shell脚本去每一个节点上去jps,查看每个节点的 ...
- java ssh执行shell脚本
1.添加依赖 com.jcraft:jsch ch.ethz.ganymed:ganymed-ssh2:262 2.获取连接 conn = new Connection(ip, port); conn ...
- Java SSH远程执行Shell脚本实现(转)
前言 此程序需要ganymed-ssh2-build210.jar包(下载地址:http://www.ganymed.ethz.ch/ssh2/) 为了调试方便,可以将\ganymed-ssh2-bu ...
- Java执行Shell脚本
Linux 系统下采用 Java 执行 Shell 脚本,直接上代码: package com.smbea.demo; import java.io.BufferedReader; import ja ...
- Java实践 — SSH远程执行Shell脚本(转)
原文地址:http://www.open-open.com/lib/view/open1384351384024.html 1. SSH简介 SSH是Secure Shell的缩写,一 ...
- Java实践 — SSH远程执行Shell脚本
1. SSH简介 SSH是Secure Shell的缩写,一种建立在应用层和传输层基础上的安全协议.SSH在连接和传送过程中会加密所有数据,可以用来在不同系统或者服务器之间进行安全连接 ...
- JAVA远程执行Shell脚本类
1.java远程执行shell脚本类 package com.test.common.utility; import java.io.IOException; import java.io.Input ...
- Java执行shell脚本并返回结果两种方法的完整代码
Java执行shell脚本并返回结果两种方法的完整代码 简单的是直接传入String字符串,这种不能执行echo 或者需要调用其他进程的命令(比如调用postfix发送邮件命令就不起作用) 执行复杂的 ...
- 利用java执行shell脚本
BPMN中存在由系统执行的脚本任务,shell脚本任务也是该系统任务脚本中的一种,利用的也是由java执行shell脚本. 代码中的ProcessBuilder类,为java.lang.Process ...
随机推荐
- delphi 与 java 兼容的 MD5
function GetMd5(AValue : string) : string; var md5 : TIdHashMessageDigest5; bytes,byte1 : TBytes; be ...
- Autel MaxiSys Pro MS908P
Autel MaxiSys pro MS908P is an evolutionary smart solution for specialized automotive diagnosis and ...
- VS2015+NUnit+OpenCover 完成单元测试代码覆盖率测试
1.VS2015+NUnit+OpenCover 完成单元测试代码覆盖率测试 https://download.csdn.net/download/qq_39441918/10522539 2.*注意 ...
- runlevel:启动运行级别(3-13)
0:halt 关机模式1:single user 单用户2:Multiuser 多用户3:Full multiuser mode 命令行模式4:unused 没有使用5:Xll 桌面模式6:reboo ...
- vue 中的 ... (三个点的用法)
这个是扩展运算符. 扩展语法.对数组和对象而言,就是将运算符后面的变量里东西每一项拆下来.这个东西可以在函数定义的地方使用,比如使用func(...args)将函数传入的参数都放到args数组里.
- shell中各种括号()、(())、[]、[[]]、{}的作用和区别
查看原文 - CSDN
- [转]IE和FireFox中JS兼容之event .
转载于:http://blog.csdn.net/jiachunfeng/article/details/6448186 http://justcoding.iteye.com/blog/587876 ...
- ubuntu下搭建android开发环境核心篇安装AndroidStudio、sdk、jdk
本文系转载http://blog.csdn.net/lsyz0021/article/details/52215996 一.安装前的准备 1.1.如果你还没有安装ubuntu 14.04 LTS系统, ...
- firefox插件-自动化测试工具-selenium IDE
教程:http://www.yiibai.com/selenium/selenium_download_ide.html 下载地址:https://addons.mozilla.org/en-US/f ...
- spring DelegatingFilterProxy管理过滤器
安全过滤器链 Spring Security的web架构是完全基于标准的servlet过滤器的.它没有在内部使用servlet或任何其他基于servlet的框架(比如spring mvc),所以它没有 ...