java连接远程服务器并执行命令
Posted 长不胖的小男孩
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java连接远程服务器并执行命令相关的知识,希望对你有一定的参考价值。
导入必要的jar包
<dependency>
<groupId>ch.ethz.ganymed</groupId>
<artifactId>ganymed-ssh2</artifactId>
<version>build250</version>
</dependency>
public static void executeCommand(String command,String host,String username,String password){ Connection conn = null; Session session = null; try { logger.info("执行linux命令:{},host:{}",command,host); conn = new Connection(host); conn.connect(); boolean flg = conn.authenticateWithPassword(username, password); if(flg){ session = conn.openSession(); session.requestPTY("bash"); session.startShell(); PrintWriter out = new PrintWriter(session.getStdin()); out.println(command); out.flush(); out.println("exit"); out.close(); session.waitForCondition(ChannelCondition.CLOSED | ChannelCondition.EOF | ChannelCondition.EXIT_STATUS, 60000); }else{ logger.info("连接host{}失败",host); } } catch (IOException e) { logger.info("host{}执行命令:{}出现异常"+e,host,command); }finally { session.close(); conn.close(); } }
以上是关于java连接远程服务器并执行命令的主要内容,如果未能解决你的问题,请参考以下文章