远程调用Linux shell 命令 查看物理主机内存和磁盘空间情况

本文介绍了如何通过Java程序远程调用Linux shell命令,详细讲解了如何查看物理主机的内存使用情况和磁盘空间占用状态,帮助系统管理员监控服务器资源。
摘要由CSDN通过智能技术生成
package cn.gwssi.data.db.monitor.util;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.apache.commons.lang.StringUtils;

import cn.gwssi.data.phoenix.util.Init;

import com.jcraft.jsch.Channel;
import com.jcraft.jsch.ChannelExec;
import com.jcraft.jsch.JSch;
import com.jcraft.jsch.JSchException;
import com.jcraft.jsch.Session;

/**
 * 远程调用Linux shell 命令 查看物理主机内存和磁盘空间情况
 */

public class HostStateForShell {

	public static final String CPU_MEM_SHELL = "top -b -n 1";
	public static final String DISK_SPACE_SHELL = "df -hl";
	public static final String[] COMMANDS = { CPU_MEM_SHELL, DISK_SPACE_SHELL };
	public static final String LINE_SEPARATOR = System.getProperty("line.separator");
	private static Session session;

	/**
	 * 
	 * 连接到指定的HOST 
	 * @return isConnect
	 * @throws JSchException
	 * 
	 */
	private static boolean connect(String user, String passwd, String host) throws Exception {

		JSch jsch = new JSch();
		boolean flag = false;
		try {
			session = jsch.getSession(user, Init.IPMap1.get(host), 22);
			session.setPassword(passwd);
			java.util.Properties config = new java.util.Properties();
			config.put("StrictHostKeyChecking", "no");
			session.setConfig(config);
			session.connect();
			flag = true;
		} catch (JSchException e) {
			throw new Exception("connect error !", e);
		}
		return flag;
	}

	/**
	 * 
	 * 远程连接Linux 服务器 执行相关的命令
	 * 
	 * @param commands
	 * 
	 *            执行的脚本
	 * 
	 * @param user
	 * 
	 *            远程连接的用户名
	 * 
	 * 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值