hyperic-sigar 获取全面的系统信息

转载 2015年11月20日 16:25:07
转自:http://blog.sina.com.cn/s/blog_6151984a0100ni1n.html

  • Hyperic-Sigar简介
Hyperic-Sigar是一个收集系统各项底层信息的工具集.他有如下特点:
1. 收集信息全面
收集CPU,MEM,NETWORK,PROCESS,IOSTAT等
使用Sigar,你完全可以模仿出cpuinfo,meminfo,top,free,ifconfig,ipconfig,netstat,route,df,du,ps,ls等多种unix平台和windows平台的指令.
2.跨平台,支持多数平台
支持的平台包括:windows系列(32系列,IA64系列,AMD64系列),linux系列,freeBsd系列,HPUnix 系列,Sun solaris/Sparc/Sparc64系列,macOs系列,AIX系列等
3.提供的API接口全面
sigar本身由C语言开发而成,提供了丰富的API接口,包括:JAVA,.NET,PERL,PHP,PYTHON,RUBY


  • 通过JAVA API接口调用Sigar,获取系统信息的例子
1.先确定基本Sigar库
Sigar JAVA编程只是JAVA API编程,需要调用Sigar的基本库,因此需要把Sigar基本库放在对应的ClassPath下
注意:Sigar为不同平台提供了不同的库文件.典型的:
windows平台:sigar-x86-winnt.dll
linux平台:libsigar-x86-linux.so或
solaris平台: libsigar-x86-solaris.so或libsigar-sparc-solaris.so或libsigar-sparc64-solaris.so
64位平台:分为至强的libsigar-ia64-linux.so和AMD的libsigar-amd64-linux.so,sigar-amd64-winnt.dll

2. 程序代码
public class SystemInfo {
   
    private Sigar sigar ;
   
    private SigarProxy proxy;
   
    private StringBuilder info = new StringBuilder();

    private void sigarInit(boolean isProxy) {
        sigar = new Sigar();
        if(isProxy)
            proxy = SigarProxyCache.newInstance(this.sigar);
    }
   
    private void shutdown() {
        this.sigar.close();
    }
   

   
    public String getInfo() {
        return info.toString();
    }

    public void clearInfo() {
        if ( null != info )
            info.delete(0,info.length());
    }

    private void println(String arg){
        info.append(arg+"\n");
    }
   
    public String sprintf(String format, Object[] items) {
        return new PrintfFormat(format).sprintf(items);
    }

    public void printf(String format, Object[] items) {
        println(sprintf(format, items));
    }
    
    public void cpuInfo() {
        clearInfo();
        println("============Current system Cpu information================");

        try {
           
            sigarInit(false);
           
            org.hyperic.sigar.CpuInfo[] infos =
                this.sigar.getCpuInfoList();

            CpuPerc[] cpus =
                this.sigar.getCpuPercList();

            org.hyperic.sigar.CpuInfo info = infos[0];
            long cacheSize = info.getCacheSize();
            println("Vendor........." + info.getVendor());
            println("Model.........." + info.getModel());
            println("Mhz............" + info.getMhz());
            println("Total CPUs....." + info.getTotalCores());
            println("Physical CPUs.." + info.getTotalSockets());
            println("Cores per CPU.." + info.getCoresPerSocket());


            if (cacheSize != Sigar.FIELD_NOTIMPL) {
                println("Cache size...." + cacheSize);
            }
            println("");

            for (int i=0; i<cpus.length; i++) {
                println("CPU " + i + ".........");
                outputCpuPerc(cpus[i]);
            }

         

Hyperic Sigar API 举例

Hyperic HQ 是什么?           Hyperic HQ 是一个开源的(General Public License,GPL授权)IT资源管理框架,让用户使用统一的界面来管理各种不同...
  • origin100
  • origin100
  • 2012年02月29日 10:57
  • 8217

hyperic-sigar-1.6.4

  • 2015年05月22日 14:59
  • 3.35MB
  • 下载

Hyperic-Sigar学习

大家好,我是Sigar。也许好多人还不认识我。下面就介绍一下我自己,好让大家对我有一个大致的了解。 我的全名是System Information Gatherer And Reporter,中...
  • zzjjiandan
  • zzjjiandan
  • 2013年05月06日 15:59
  • 2056

sigar API简介

使用时需要把对应的操作系统的脚本放到java安装包的bin目录下。举个例子package com.suosong.sigar;import java.net.InetAddress; import j...
  • sddh1988
  • sddh1988
  • 2017年04月14日 20:50
  • 780

Sigar_1.6.4 API ( CHM格式 )

  • 2015年08月29日 12:54
  • 444KB
  • 下载

Sigar 获取CPU和Memory内存等信息使用详解

一、 Sigar详细介绍 Sigar(System Information Gatherer And Reporter),是一个开源的工具,提供了跨平台的系统信息收集的API,核心由C语言实现的。 S...
  • a123demi
  • a123demi
  • 2016年02月18日 23:23
  • 6974

java利用sigar获取电脑cpu 内存 硬盘使用率等信息

1 下载安装sigar-1.6.4.zip     使用java自带的包获取系统数据,容易找不到包,尤其是内存信息不够准确,所以选择使用sigar获取系统信息。        下载地址:http:...
  • xueba8
  • xueba8
  • 2017年12月24日 14:37
  • 129

sigar获取系统运行时资源状态

先看看效果  第1块CPU信息 CPU的总量MHz: 2594 CPU生产商: Intel CPU类别: Core(TM) i5-3230M CPU @ 2.60GHz CPU缓存数量: -1 CP...
  • citi007
  • citi007
  • 2014年12月17日 19:06
  • 1250

java项目中使用Sigar获取系统信息

最近在做一个java web项目时,有监控服务器性能信息等的需求,比如cpu、mem、disk等使用信息,于是各种google,找到了Sigar这个工具。简介Sigar(System Informat...
  • c446984928
  • c446984928
  • 2016年02月25日 19:02
  • 9671

借助Sigar API获取磁盘信息

借助Sigar API获取磁盘信息
  • wangshuxuncom
  • wangshuxuncom
  • 2015年02月28日 08:35
  • 2941
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:hyperic-sigar 获取全面的系统信息
举报原因:
原因补充:

(最多只允许输入30个字)