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 ...
随机推荐
- buildKibanaServerUrl
private String buildKibanaServerUrl(DiscountIndexMailData mailData,Statistic stat,String failureCaus ...
- vue.js入门环境搭建
1.node.js环境(npm包管理器) 2.vue-cli手脚架构建工具 3.cnpm npm的淘宝镜像 安装node.js 从node.js官网下载并安装node,安装过程一路“下一步”就可以 安 ...
- beeline hiveserver2 start
1. install hive 2. start hiveserver2 查看hiverserver2 是否正常运行: ps -ef | grep hive 2. start beeline 3. 链 ...
- Maven使用之packing篇
项目的打包类型:pom.jar.war 项目中一般使用maven进行模块管理,每个模块下对应都有一个pom文件,pom文件中维护了各模块之间的依赖和继承关系.项目模块化可以将通用的部分抽离出来,方便重 ...
- Microsoft使用技巧
1.拍摄屏幕内容的截图 按 Win + Shift + S 以打开截图栏,然后将光标拖动到要捕获的区域. 截图区域将保存到剪贴板. 2.使用键盘添加表情符号 随心随处表达自我. 按 Ctrl + Sh ...
- 使用codesmith无法连接mysql问题
最近研究codesmith的用法,遇到了如题的问题,记录一下解决的方法. 1.问题描述: 在codesmith中选择MySQLSchemaProvider并连接数据库时,会报以下错误: Test fa ...
- stm32 定时器初步
今天学习STM32 的通用定时器:TIMx (TIM2.TIM3.TIM4 和 TIM5). 定时器比较复杂,功能繁多,这里我们就说最基本的计数功能. 1.定时器的时钟从哪里来? 定时器的时钟来源有 ...
- php-fpm 进程在云服务器cpu分配不均匀
8核的云服务器,开了200个php-fpm进程,用top命令查看 大部分进程都在cpu 0 上跑着,导致其他cpu 负载很低,cpu分配不均匀: 使用shell 解决问题: 列出所有php-fpm ...
- Hack Knowledges
XSS(Cross-Site Scripting) Hacker PC -- upload XSS script to Web Server --> User PC Request for th ...
- HIbernate基于外键的查询
此文以个人开发记录为目的,笔拙勿喷 项目是背景是公司的E签宝平台VIP频道项目进行关联账户增加后,需要做删除时的,联合查询 当前主要表结构账户表Account. CREATE TABLE `accou ...