java使用ganymed-ssh2如何远程执行多条命令
2021/4/13 22:26:31
本文主要是介绍java使用ganymed-ssh2如何远程执行多条命令,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
ganymed-ssh2提供执行远程命令的方法
linux和windows系统多个命令用&&隔开,如果其中某个命令出错,后面的命令就不会执行了
windows系统执行命令需要再前面加cmd /c
Connection conn = new Connection(hostname, port); Session ssh = null; try { //连接到主机 conn.connect(); //使用用户名和密码校验 boolean isconn = conn.authenticateWithPassword(username, password); if (!isconn) { System.out.println("用户名称或者是密码不正确"); } else { System.out.println("已经连接OK"); //以下是linux的示例 //将本地conf/server_start.sh传输到远程主机的/opt/pg944/目录下 //SCPClient clt = conn.createSCPClient(); //clt.put("conf/server_start.sh", "/opt/pg944/"); //执行命令 //ssh.execCommand("sh /root/hello.sh"); //ssh.execCommand("perl /root/hello.pl"); //只允许使用一行命令,即ssh对象只能使用一次execCommand这个方法,多次使用则会出现异常. //多个命令用&&隔开 String commands = "ipconfig&&md F:\\\\test\\\\myfolder&&echo 333333>f:\\3.txt&&echo 44444>f:\\4.txt"; ssh = conn.openSession(); // windows系统执行命令需要再前面加cmd /c ssh.execCommand("cmd /c "+commands); //ssh.execCommand(command); //将Terminal屏幕上的文字全部打印出来 InputStream is = new StreamGobbler(ssh.getStdout()); BufferedReader brs = new BufferedReader(new InputStreamReader(is,"gbk")); while (true) { String line = brs.readLine(); if (line == null) { break; } System.out.println(line); } } } catch (IOException e) { System.out.println(e.getMessage()); e.printStackTrace(); } finally { //连接的Session和Connection对象都需要关闭 if (ssh != null) { ssh.close(); } if (conn != null) { conn.close(); } }
这篇关于java使用ganymed-ssh2如何远程执行多条命令的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-26消息中间件源码剖析教程
- 2024-11-26JAVA语音识别项目资料的收集与应用
- 2024-11-26Java语音识别项目资料:入门级教程与实战指南
- 2024-11-26SpringAI:Java 开发的智能新利器
- 2024-11-26Java云原生资料:新手入门教程与实战指南
- 2024-11-26JAVA云原生资料入门教程
- 2024-11-26Mybatis官方生成器资料详解与应用教程
- 2024-11-26Mybatis一级缓存资料详解与实战教程
- 2024-11-26Mybatis一级缓存资料详解:新手快速入门
- 2024-11-26SpringBoot3+JDK17搭建后端资料详尽教程