java连接ssh执行shell脚本
2018-01-09 20:38
337 查看
在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脚本实现
- Java实践 — SSH远程执行Shell脚本
- Java实现远程ssh执行shell脚本对文件打包下载
- 【Jsch】使用SSH协议连接到远程Shell执行脚本
- java通过ssh连接服务器执行shell命令详解及实例
- java通过FreeSShd客户端连接windows 执行shell脚本
- Java SSH远程执行Shell脚本实现
- Java实践 — SSH远程执行Shell脚本
- Java实践 — SSH远程执行Shell脚本(转)
- Java SSH远程执行Shell脚本实现
- Java通过Telnet连接执行shell脚本
- Java 连接远程Linux 服务器执行 shell 脚本查看 CPU、内存、硬盘信息
- Java SSH远程执行Shell脚本实现
- Java 连接远程Linux 服务器执行 shell 脚本查看 CPU、内存、硬盘信息
- Java实践 — SSH远程执行Shell脚本
- Java SSH远程执行Shell脚本实现(转)
- Java SSH远程执行Shell脚本实现
- Java实现ssh连接linux并执行shell命令
- Java SSH远程执行Shell脚本实现(转)
- Java SSH远程执行Shell脚本实现