linux设备硬件信息的获取

本文详述了如何在Linux系统中通过命令行获取CPU、内存、磁盘IO、网络带宽等硬件信息,提供了Java实现代码,并模拟了玩客云场景,涉及数据库操作和JSON数据生成。
摘要由CSDN通过智能技术生成

linux设备硬件信息的获取

  • 摘要: 本文主要分析了在linux设备上采集相关的硬件信息,并给出了java实现的方法。然后模拟了“玩客云”的场景,摘取了部分关键信息,上传至服务器。
  • 关键技术: linux命令行返回值的解析、MySQL数据的连接及相关操作、HTTP通信
  • 实现语言: java
  • 参考: http://www.jb51.net/LINUXjishu/65741.html
  • https://blog.csdn.net/blue_jjw/article/details/8741000
  • github: https://github.com/Kevin-miu/InformationGetter

信息采集

0.重要数据结构

以下就是准备收集的硬件信息,集中保存在BaseInfo对象。

基本信息类:

public class BaseInfo {
   

	private String macAddress;// mac地址(可以去掉,放在总结构上)
	private MemoryInfo memoryInfo;// 内存信息
	private CPUInfo cpuInfo;// cpu信息
	private NetInfo netInfo;// 网络带宽信息
	private IOInfo ioInfo;// 磁盘IO信息
	private DiskInfo diskInfo;// 磁盘使用情况
	private float onlineTime;// 在线时长
}

其他详细信息:

/**
	 * memTotal:总容量; memFree:空闲容量 ; swapTotal:交换空间总容量; swapFree:交换空间空闲容量;
	 */
	public class MemoryInfo {
   
		private long memTotal;
		private long memFree;
		private long swapTotal;
		private long swapFree;
    }

    /**
	 * user:系统启动至今,用户态的CPU时间。1jiffies=0.01s; nice:系统启动至今,nice值为负的进程所占用的CPU时间;
	 * system:系统启用至今,核心CPU时间 ; idle:系统启动至今,除IO等待时间以外的其他等待时间; 计算cpu的使用率:
	 */
	public class CPUInfo {
   
		private long user;
		private long nice;
		private long system;
		private long idle;
    }

    /**
	 * receBytes:接受的字节数,可计算下载带宽 ; sendBytes:发送的字节数,可计算上行带宽;
	 * currentDownloadSpeed:当前下载速度 ; currentUploadSpeed:当前上传速度;
	 *
	 */
	public class NetInfo {
   
		private long receBytes;
		private long sendBytes;
		private String currentDownloadSpeed;
		private String currentUploadSpeed;
    }

    /**
	 * util:一秒中有百分之多少的时间用于I/O操作;
	 */
	public class IOInfo {
   
		private float util;
    }

    /**
	 * totalSize:磁盘总容量 ; usedSize:磁盘已使用大小 ; availSize:磁盘剩余容量;
	 *
	 */
	public class DiskInfo {
   
		private String totalSize;
		private String usedSize;
		private String availSize;
    }

1.CPU

背景知识介绍

proc文件系统:proc文件系统是一个伪文件系统,它只存在内存当中,而不占用外存空间。它以文件系统的方式为访问系统内核数据的操作提供接口。用户和应用程序可以通过proc得到系统的信息,并可以改变内核的某些参数。

从/proc文件系统获取cpu使用情况: cat /proc/stat
该文件包含了所有CPU活动的信息,所有值都是从系统启动开始累计到当前时刻

执行结果如下所示

kevin@ubuntu:~$ cat /proc/stat
cpu  947 0 2492 45071 2008 0 101 0 0 0
cpu0 536 0 1242 22405 726 0 47 0 0 0
cpu1 411 0 1249 22666 1281 0 54 0 0 0
intr 63204 57 64 0 1 152 0 2 0 1 0 0 0 1668 0 0 0 1556 10529 61 350 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 320 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ctxt 183833
btime 1527075275
processes 2914
procs_running 3
procs_blocked 0
softirq 48101 1 17338 51 585 11210 0 109 7723 11 11073

输出解释:
cpu0和cpu1代表为2核,cpu每一列的参数意思为:

    <
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值