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客户端,我会先把毕业设计其它的部分先完成,然后再用剩余的时间去尝试自己实现。

java控制远程ssh-JSCH(二)的更多相关文章

  1. java控制远程ssh-expect4j(一)

    github : https://github.com/wengyingjian/ssh-java-demo.git 程序写完后,ssh连接到远程服务器上需要做的步骤都是固定的,所以我们可以通过程序来 ...

  2. JAVA实现远程SSH连接linux并运行命令

    博客转移到http://blog.codeconch.com

  3. java:Linux(简单命令,远程ssh使用hostname访问,.免密钥登录配置)

    1.临时关闭防火墙: service  iptables  stop 临时开启防火墙: service  iptables  start 查看防火墙状态: service  iptables  sta ...

  4. 公钥-私钥 白名单-黑名单 Linux 远程访问及控制(SSH)

    远程访问及控制一.SSH远程管理二.OpenSSH服务器① SSH (Secure Shell)协议② OpenSSH三.配置OpenSSH服务器举例四.sshd 服务支持两种验证方式五.使用SSH客 ...

  5. Linux实战教学笔记05:远程SSH连接服务与基本排错(新手扫盲篇)

    第五节 远程SSH连接服务与基本排错 标签(空格分隔):Linux实战教学笔记-陈思齐 第1章 远程连接LInux系统管理 1.1 为什么要远程连接Linux系统 在实际的工作场景中,虚拟机界面或物理 ...

  6. 20145221 《Java程序设计》实验报告二:Java面向对象程序设计

    20145221 <Java程序设计>实验报告二:Java面向对象程序设计 实验要求 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态 初步掌握UML建模 熟悉S.O. ...

  7. CentOS生产机器禁止ROOT远程SSH登录

    方法一 很多站长拥有linux主机,不管是虚拟机还是实体机,一般我们远程连接的时候,都是用的ssh(SecureShell建立在应用层和传输层基础上的安全协议). 它默认的端口22,默认使用root也 ...

  8. JAVA基础再回首(二十五)——Lock锁的使用、死锁问题、多线程生产者和消费者、线程池、匿名内部类使用多线程、定时器、面试题

    JAVA基础再回首(二十五)--Lock锁的使用.死锁问题.多线程生产者和消费者.线程池.匿名内部类使用多线程.定时器.面试题 版权声明:转载必须注明本文转自程序猿杜鹏程的博客:http://blog ...

  9. 不同路由器下远程ssh登录Beaglebone系统(通过路由器端口转发,配合花生壳的DDNS功能)

    使用场景: 一般家庭设备都是通过路由器中转连上互联网的,而且运营商给家庭宽带分配的IP地址也是动态的.随时可能变动的.所以当程序员们离开家之后,是很难直接和家里的设备进行交互的.但是通过TPLINK路 ...

随机推荐

  1. <正则吃饺子> :关于 Matcher 的 replaceAll 的简单使用

    在线文档地址:http://tool.oschina.net/apidocs/apidoc?api=jdk-zh replaceAll public String replaceAll(String  ...

  2. LayUI 子父窗体的交互

    ---恢复内容开始--- 收到的工作是将一个ERP的窗体程序改为网页实现,所以就肯定需要弹框来选择(如:物料编码.部门.业务员等等) 本文采取的前段框架是LayUI. layUI的官网API网址:ht ...

  3. AI决策算法 之 GOAP (二)

    http://blog.csdn.net/lovethRain/article/details/67634803 GOAP 的主要逻辑: 1.Agent的状态机初始化Idle状态 2.Idel状态根据 ...

  4. nginx反向代理解决跨域问题,使本地调试更方便

    我们可能都会遇到一个这样的问题,线上环境是https://...,本地启动了项目,域名是localhost:8000等,本地想要访问线上的接口,直接在本地调试,却提示跨域,这个时候我们可以配置ngin ...

  5. react-native-video的使用

    /** * Sample React Native App * https://github.com/facebook/react-native * * @format * @flow */ impo ...

  6. 洛谷P2136 拉近距离

    题目背景 我是源点,你是终点.我们之间有负权环. --小明 题目描述 在小明和小红的生活中,有\(N\)个关键的节点.有\(M\)个事件,记为一个三元组\((S_i,T_i,W_i)\),表示从节点\ ...

  7. day5字典作业详解

    1.day5题目 1.有如下变量(tu是个元祖),请实现要求的功能 tu = ("alex", [11, 22, {"k1": 'v1', "k2&q ...

  8. Djano调试工具debug-toolbar

    Djano调试工具debug-toolbar   django-debug-toolbar 调试工具使用文档 安装 pip install django-debug-toolbar 配置 在setti ...

  9. 算法设计与分析-HomeWork

    ex1(p20) 代码如下: import random def Darts(n): k=0 i=1 while i<=n: x=random.uniform(0,1) #y=random.un ...

  10. jdbc查询

    import java.util.ArrayList; import java.util.List; import org.springframework.jdbc.core.BeanProperty ...