java控制远程ssh-expect4j(一)

王朝学院·作者佚名  2016-08-27
窄屏简体版  字體: 小  |  中  |  大  |  超大  

github : https://github.com/wengyingjian/ssh-java-demo.git

程序写完后,ssh连接到远程服务器上需要做的步骤都是固定的,所以我们可以通过程序来使这件事情简单化。

1.原先要做的事:

0).ssh user@host

passWord远程登录

1).$CATALINA_HOME/bin/shutdown.sh

关闭tomcat

2).$CATALINA_HOME/bin/startup.sh

启动tomcat

3).tail -f $CATALINA_HOME/logs/catalina.out

监控程序日志输出。这里也可能是log4j指定的其它目录。

2.寻求解决方案。

最开始(现在也是)我用的就是上面的方法,感觉特别死板,而且我也看到公司里有人用shell来做这些事情。于是我就想,我是不是也应该让程序来帮自己工作。

首先,我不怎么会bshell,其次,我想做的更好(将这些所有的步骤放到maven插件里面去做)。所以我就想,既然bshell可以来控制ssh,那么我用java应该同样也可以。

上网搜了下,发现的确有,于是就拿过来用了。

3.搬过来改造

首先是测试与加注释。

为了保险起见(有前辈告诉我调用bin/shutdown.sh不好,还没关掉又打开会出问题,直接找到进程杀死更加安全)

发现这个调用返回字符串的时候有些坑,每次都是得到所有的消息,无奈只好字符串处理。来得到返回的进程号,然后杀死。

到这里一切都还成功

4.现在需要追踪日志了

翻了半天接口没找到能像ssh连接时一样不断输出日志的。所以不能再去找找有没有其它的方法了。

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航