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连接时一样不断输出日志的。所以不能再去找找有没有其它的方法了。

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

  1. java控制远程ssh-JSCH(二)

    github: https://github.com/wengyingjian/ssh-java-demo.git 这次找到了一套新的api,叫jsch.网上查了一下,顺便把官网的几个demo给一通拿 ...

  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实战教学笔记05:远程SSH连接服务与基本排错(新手扫盲篇)

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

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

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

  6. (转)远程SSH连接服务与基本排错

    远程SSH连接服务与基本排错 原文:https://www.cnblogs.com/chensiqiqi/p/6224474.html#top 1.1 为什么要远程连接Linux系统 在实际的工作场景 ...

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

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

  8. Android(Java)控制GPIO的方法及耗时分析

    前面两篇分别介绍了通过脚本和C代码读写/sys/class/gpio以控制GPIO.实际项目调试时经常还需要在Java代码里控制GPIO,其实现与C代码类似,唯一不同是Android权限.本文重点介绍 ...

  9. virtualbox下面安装ubuntu后外网如何远程ssh访问

    这两天在折腾virtualbox安装linux的事情,想多弄几个节点,装hadoop, 环境如下 两台thinkpad, 一台正常上班用的,win7 一台装的ubuntu kylin 16.04, 上 ...

随机推荐

  1. ng2中的ng-content用法

    用途:1.ng-content用于在组件中嵌入内容 2.ng-content可以在组件中嵌入模板代码,方便定制可复用的组件 select属性支持css选择器,如"#id",&quo ...

  2. 运用flask、flask-restful开发rest风格的接口,并使用蓝图增加代码的延展性和可扩展性。

    本人做为一个测试人员,之前也有写过,想要测试好接口,那必须要知道如何开发一个接口的重要性. 之前也写过通flask或者flask-retful开发接口,但那些只是一些最简单的demo,不具有很好延展性 ...

  3. C# 32位程序在64位系统下运行中解决重定向问题

    在64位的Windows操作系统中,为了兼容32位程序的运行,64位的Windows操作系统采用重定向机制.目的是为了能让32位程序在64位的操作系统不仅能操作关键文件文夹和关键的注册表并且又要避免与 ...

  4. idea救命篇--误删文件恢复

    删除.覆盖文件恢复:右键文件--Local History 查到被删的代码,idea自动保存的. 即使文件目录文件被删了,在同地方新建一个同名空文件,也可以通过Local History找回来代码.

  5. HDOJ-2153

    仙人球的残影 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Subm ...

  6. 《Java多线程编程核心技术》读后感(二)

    方法内的变量为线程安全 package Second; public class HasSelfPrivateNum { public void addI(String username) { try ...

  7. HN669打包工具--环境准备

    1.安装JDK 这个百度,Google一大堆,可以自行参考.仅仅注意,不要安装错了,根据自己系统是32位还是64位,安装MAC下的JDK版本.系统32/64位查询命令:uname -a下载地址安装指导 ...

  8. 基于zookeeper实现分布式配置中心(一)

    最近在学习zookeeper,发现zk真的是一个优秀的中间件.在分布式环境下,可以高效解决数据管理问题.在学习的过程中,要深入zk的工作原理,并根据其特性做一些简单的分布式环境下数据管理工具.本文首先 ...

  9. Git 分支管理 BUG分支

    BUG分支  廖雪峰 软件开发中,bug就像家常便饭一样.有了bug就需要修复, 在Git中,由于分支是如此的强大,所以, 每个bug都可以通过一个新的临时分支来修复,修复后,合并分支,然后将临时分支 ...

  10. Unity 中的坐标系

    说明: 注意几点: 0 行向量右乘矩阵与列向量左乘矩阵,两个矩阵互为逆矩阵 1 法线转换与mul,mul函数左乘矩阵当列矩阵计算,右乘当行矩阵计算 2 叉乘与左右手系,左手系用左手,右手系用右手,ax ...