应用Ganymed SSH-2 for Java判断服务器状态

14 篇文章 0 订阅

应用Ganymed SSH-2 for Java判断服务器状态:


之前的很多章节已经描述了如何运用Ganymed SSH-2 for Java的api,基本上主要的都进行过演示了。

下面,我将通过一个实际中很有帮助的一个功能点作为应用的开篇,讲述这个在实际工作中的意义。


一台服务器,如何判断其状态是否正常啦,及是否可以访问,在不想登录等操作的情况下,每隔一段时间探测一次服务状态,那么可以这样实现:


/**
	 * 探测服务器状态
	 * 
	 * @param host
	 * @param username
	 * @param password
	 * @param cmd
	 * @param port
	 * @return
	 * @throws IOException
	 */
	public static String queryServerStatus(String host, String username,
			String password,

			String cmd, int port) throws IOException {

		if (logger.isInfoEnabled()) {

			logger.info("running SSH cmd [" + cmd + "]");

		}

		Connection conn = null;
		Session sess = null;
		InputStream stdOut = null;
		String outStr = "";

		try {
			conn = getOpenedConnection(host, username, password, port);

			sess = conn.openSession();

			sess.execCommand(cmd);

			stdOut = new StreamGobbler(sess.getStdout());
			outStr = FileWRUtil.inputStream2String(stdOut,
					ConstantsUtil.CHARSET);
			sess.waitForCondition(ChannelCondition.EXIT_STATUS, 60000);

		} finally {

			if (null != sess) {
				sess.close();
				sess = null;
			}

			if (null != conn) {
				conn.close();
				conn = null;
			}

			IOUtils.closeQuietly(stdOut);

		}
		return outStr;

	}


测试代码:

		String cmd = "curl -o /dev/null -s -m 10 --connect-timeout 60 -w %{http_code} 'http://172.16.18.141:8080/Login.jsp'";
		
		System.out.println(CommandRunner.queryServerStatus("172.16.18.141",
				"weblogic", "123456", cmd, 22));


这个结果返回的是http状态码:200 404 等,那么根据这些状态码就可以知道这个服务是否正常了,需要定时的话,将其纳入定时任务中,每次更新相关的信息即可。




  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值