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

这次找到了一套新的api,叫jsch。网上查了一下,顺便把官网的几个demo给一通拿过来了(还看到了sftp,看来到时候文件传输也可以用这个写)。

一。测试与修改代码

    运行了给的代码以后发现时带图形化的,果断删去不相干的代码,看上去果然清楚多了。
然后调用了一下,发现返回的结果也方便:每次服务器给出啥反应就得到啥字符串,这下字符串切割要方便一些了。
关键是在打印信息的时候我看到了个“while true” ,试了一下,果然能够保证程序不退出,持续输出,这就是我想要的。
但是也发现了不足:每次只能运行一条命令。
这一些东西是前两天在机场写的,不知道为啥ssh连接很慢,所以执行多条语句的时候等的超级蛋疼。。 二。对代码的改造 将原先的代码改了一通,变成自己的工具类,基本功能得以实现。

三。整个功能的合并

    回到最初的目的,是要做4件事:
0).ssh user@host
password
1).netstat -anp|grep 8080
2).kill pid
3).$CATALINA_HOME/bin/startup.sh
4).tail -f $CATALINA_HOME/logs/catalina.out
其中1和2之间是要得到返回结果,在java中分析到底第二步要kill的pid是多少的。
所以执行顺序应该是:1->2,3,4
但是现在支持连续多条命令的不支持输出日志,支持输出日志的不能执行多条语句,所以只能是1->2,3->4 补一句:log4j未调通,所以使用system.out显得有点low了。。 四。其它的思考 既然没有找到我特别满意的javaAPI,我是不是可以把ssh协议看作是http协议(先不管加密认证的事),通过socket编程来自己实现一个ssh的客户端。
这么一想,如果不用ssh协议呢?的确,用啥都行,甚至自己用java随便在服务器上来个端口,客户端与其通信,这样理论上也是行得通的。也能找到同样在运用中的例子:cargo以及tomcat插件的自动化部署,走的就是http协议,然后通过tomcat的manager来认证。然而,tomcat关闭了就用不了了。
所以,为什么要用ssh,(抛开安全的问题)就是因为ssh-server几乎已经成了linux服务器的标配,所以我们才使用的。
至于用java来自己写一个ssh客户端,我会先把毕业设计其它的部分先完成,然后再用剩余的时间去尝试自己实现。

最新文章

  1. Python之str()与repr()的区别
  2. CentOS7安装MySQL、Redis、RabbitMQ
  3. MSSQL-实用小工具
  4. .net社区
  5. ACM: POJ 1401 Factorial-数论专题-水题
  6. 软件包管理 之 RPM 基础 《RPM 的介绍和应用》
  7. Linux C 程序 进程间通信(20)
  8. JSTL解析——007——fmt标签库02
  9. SQLite语法
  10. 提升html5的性能体验系列之三流畅下拉刷新
  11. commonJS的核心思想
  12. .net 分布式的未来:微服务
  13. 虚拟机console基础环境部署——配置本地YUM源
  14. DeepCTR专题:Neural Factorization Machines 论文学习和实现及感悟
  15. 各种height 以及判断滚动条是否已拉到页面最底部
  16. tomcat tomcat-user.xml被还原
  17. 《UnityShader入门精要》学习笔记之渲染流水线
  18. 两table水平滚动条级联滚动(同步滚动)。 table1放标题,table2放内容。
  19. C++作业:Circle_area
  20. 201621123005《Java程序设计》第十一次实验总结

热门文章

  1. libvirtError: 无效参数:could not find capabilities for domaintype=kvm
  2. Linux运行Tomcat下的war文件
  3. sublime取消自动升级提示
  4. 远程访问Linux系统桌面
  5. 拓展kmp模板
  6. Visual Studio容器项目工程化心得
  7. Python:通过一个小案例深入理解IO多路复用
  8. java基础第十一篇之Date、Math、自动装箱和拆箱
  9. 黑马学习Ajax 跨域资源共享 jQuery+jsonp实现
  10. 题解 UVA11354 【Bond】