Sigar(System Information Gatherer And Reporter)是一个开源的工具,提供了跨平台的系统信息收集的API,核心由C语言实现的。
可以收集的信息包括:
- CPU信息: 包括基本信息(vendor、model、mhz、cacheSize)和统计信息(user、sys、idle、nice、wait)
- 文件系统信息: 包括Filesystem、Size、Used、Avail、Use%、Type
- 事件信息: 类似Service Control Manager
- 内存信息: 物理内存和交换内存的总数、使用数、剩余数;RAM的大小
- 网络信息: 包括 网络接口信息 和 网络路由 信息
- 进程信息: 包括每个进程的内存、CPU占用数、状态、参数、句柄
- IO信息: 包括IO的状态,读写大小等
- 服务状态信息
- 系统信息: 包括操作系统版本,系统资源限制情况,系统运行时间以及负载,JAVA的版本信息等.
添加 Maven 依赖
1 | <dependency> |
下载 本地库 依赖
- 下载地址:https://sourceforge.net/projects/sigar/files/sigar/1.6/hyperic-sigar-1.6.4.zip
- 解压后,拷贝
hyperic-sigar-1.6.4/sigar-bin/lib
文件夹 到 maven 工程的resources
文件夹下 - 删除无用的文件
.sigar_shellrc
、log4j.jar
、sigar.jar
, - 重命名
lib
文件夹为sigar
1 | resources/ |
以上做法是直接拷贝到了运行程序 classpath,最好是打成 jar 包,通过 Maven 依赖进来。
Siger 工具类
1 |
|
Demo
1 | Sigar sigar = SigarUtil.getInstance(); |
API 文档可以从 hyperic-sigar-1.6.4/docs/javadoc
找到
Cli 功能
启动方式: java -jar hyperic-sigar-1.6.4/sigar-bin/lib/sigar.jar
支持的交互命令:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35sigar> help
Available commands:
alias - Create alias command
cpuinfo - Display cpu information
df - Report filesystem disk space usage
du - Display usage for a directory recursively
free - Display information about free and used memory
get - Get system properties
help - Gives help on shell commands
ifconfig - Network interface information
iostat - Report filesystem disk i/o
kill - Send signal to a process
ls - simple FileInfo test at the moment (like ls -l)
mps - Show multi process status
netinfo - Display network info
netstat - Display network connections
nfsstat - Display nfs stats
pargs - Show process command line arguments
penv - Show process environment
pfile - Display process file info
pidof - Find the process ID of a running program
pinfo - Display all process info
pmodules - Display process module info
ps - Show process status
quit - Terminate the shell
route - Kernel IP routing table
set - Set system properties
sleep - Delay execution for the a number of seconds
source - Read a file, executing the contents
sysinfo - Display system information
time - Time command
ulimit - Display system resource limits
uptime - Display how long the system has been running
version - Display sigar and system version info
who - Show who is logged on
也可以通过参数直接调用指定的命令1
2
3
4# 显示系统运行的时间
$ java -jar hyperic-sigar-1.6.4/sigar-bin/lib/sigar.jar uptime
1:30 下午 up 12 days, 2:15, load average: 5.73, 3.38, 3.13