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. JS---猜数字(0-100)

    <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...

  2. 按钮交互loading ---- 转圈圈 加载

    按钮loading状态自定义选项(功能): 可以在元素上添加 data-am-loading 来设置选项: spinner 加载动画图标,适用于支持 CSS3 动画.非 input 元素,写图标名称即 ...

  3. hadoop版本与支持的hbase版本对照…

    hadoop版本与支持的hbase版本对照表 分类: hbase2013-05-20 17:19 701人阅读 评论(2) 收藏 举报 HbaseHadoop As of Hive 0.9.0 the ...

  4. Linux&nbsp;JDK1.4卸载与1.6的安装

    Linux JDK卸载与安装 一.jdk1.4卸载 Redhat Enterprise 5 中自带安装了jdk1.4,在安装jdk1.6前,把jdk1.4卸载: 1.首先查看系统自带JDK的版本: [ ...

  5. 防止APP退到被安卓系统清理

    一个是尽量提高APP权限,无非就是保持APP始终界面在前台 二是使用守护进程方法,被清理了立刻自己启动, 三是前台跟后台进程分开,被重启了恢复原始环境. // 申请设备电源锁,在服务start的时候. ...

  6. 在 Ubuntu 上安装 Protobuf 3

    什么时候需要安装 如果使用 protoc 命令,遇到 Protoc not found,表示未安装.或者,执行时出现错误:This parser only recognizes "proto ...

  7. Scipy的应用

    首先总体概括一下Scipy的用处 >>> #Scipy依赖于numpy>>> #Scipy提供了真正的矩阵>>> #Scipy包含的功能:最优化, ...

  8. unity5.5打包

    https://docs.unity3d.com/ScriptReference/BuildPipeline.BuildAssetBundles.html 5.34升5.5打包bundle遇到问题 A ...

  9. CF360E Levko and Game【贪心+dijsktra】

    先把所有边可动设为r[i]又这些边不是l就是r(如果想一个方向改变能更优的话就尽量多的改变),每次跑dijsktra,对于可动边(x,y),如果dis1[x]<=dis2[x],那么就把这条边改 ...

  10. vjudge个人赛 复习1

    A - 大鱼吃小鱼(栈) 有N条鱼每条鱼的位置及大小均不同,他们沿着X轴游动,有的向左,有的向右.游动的速度是一样的,两条鱼相遇大鱼会吃掉小鱼.从左到右给出每条鱼的大小和游动的方向(0表示向左,1表示 ...