方案一:脚本所在服务器安装一个客户端,也就是自己写的一个小程序,本地通过端口调目标服务器的程序,然后程序调本机上的shell脚本!
优点:通过端口调用,用户不用暴露服务器的账号密码,安全性高
缺点:我们需要一直维护这个客户端程序,而且每接入一台服务器,都得安装该客户端,另外非常考验客户端程序的健壮性。
方案二:本地直接通过IP,服务器账号密码调远程服务器的shell脚本
优点:代码易开发,扩展时只用扩展服务端代码即可
缺点:用户服务器的账号密码会暴露给服务端,密码安全问题
把每种方案的优缺点汇报给leader,leader说:按第二种来吧
来吧!!开干,废话不多说,直接上代码:
导入程序所需的软件包:
<dependency>
<groupId>org.jvnet.hudson</groupId>
<artifactId>ganymed-ssh2</artifactId>
<version>build210-hudson-1</version>
</dependency>
程序涉及的demo:
import java.io.IOException;
import java.io.InputStream;
import java.io.UnsupportedEncodingException;
import java.nio.charset.Charset;