1. 程式人生 > >使用sigar工具獲取伺服器資訊

使用sigar工具獲取伺服器資訊

注意點: 不同機器,放置的位置不同。 例如:將 sigar-amd64-winnt.dll 放置在 C:\Program Files\Java\jdk1.8.0_91\bin (win64)

  • maven依賴
 <!-- https://mvnrepository.com/artifact/org.hyperic.sigar/com.springsource.org.hyperic.sigar -->
 <dependency>
     <groupId>org.hyperic.sigar</groupId>
     <artifactId>
com.springsource.org.hyperic.sigar</artifactId> <version>1.6.3</version> </dependency>
  • 參考程式碼
import java.net.InetAddress;
import java.net.UnknownHostException;
import java.util.Map;
import java.util.Properties;

import org.hyperic.sigar.CpuInfo;
import org.hyperic.sigar.
CpuPerc; import org.hyperic.sigar.FileSystem; import org.hyperic.sigar.FileSystemUsage; import org.hyperic.sigar.Mem; import org.hyperic.sigar.NetFlags; import org.hyperic.sigar.NetInterfaceConfig; import org.hyperic.sigar.NetInterfaceStat; import org.hyperic.sigar.OperatingSystem; import org.hyperic.
sigar.Sigar; import org.hyperic.sigar.SigarException; import org.hyperic.sigar.Swap; import org.hyperic.sigar.Who; public class TestSigar { public static void main(String[] args) { try { // System資訊,從jvm獲取 property(); System.out.println("----------------------------------"); // cpu資訊 cpu(); System.out.println("----------------------------------"); // 記憶體資訊 memory(); System.out.println("----------------------------------"); // 作業系統資訊 os(); System.out.println("----------------------------------"); // 使用者資訊 who(); System.out.println("----------------------------------"); // 檔案系統資訊 // file();//本機測試拒絕訪問 System.out.println("----------------------------------"); // 網路資訊 net(); System.out.println("----------------------------------"); // 乙太網資訊 ethernet(); System.out.println("----------------------------------"); } catch (Exception e1) { e1.printStackTrace(); } } private static void property() throws UnknownHostException { Runtime r = Runtime.getRuntime(); Properties props = System.getProperties(); InetAddress addr; addr = InetAddress.getLocalHost(); String ip = addr.getHostAddress(); Map<String, String> map = System.getenv(); String userName = map.get("USERNAME");// 獲取使用者名稱 String computerName = map.get("COMPUTERNAME");// 獲取計算機名 String userDomain = map.get("USERDOMAIN");// 獲取計算機域名 System.out.println("使用者名稱: " + userName); System.out.println("計算機名: " + computerName); System.out.println("計算機域名: " + userDomain); System.out.println("本地ip地址: " + ip); System.out.println("本地主機名: " + addr.getHostName()); System.out.println("JVM可以使用的總記憶體: " + r.totalMemory()); System.out.println("JVM可以使用的剩餘記憶體: " + r.freeMemory()); System.out.println("JVM可以使用的處理器個數: " + r.availableProcessors()); System.out.println("Java的執行環境版本: " + props.getProperty("java.version")); System.out.println("Java的執行環境供應商: " + props.getProperty("java.vendor")); System.out.println("Java供應商的URL: " + props.getProperty("java.vendor.url")); System.out.println("Java的安裝路徑: " + props.getProperty("java.home")); System.out.println("Java的虛擬機器規範版本: " + props.getProperty("java.vm.specification.version")); System.out.println("Java的虛擬機器規範供應商: " + props.getProperty("java.vm.specification.vendor")); System.out.println("Java的虛擬機器規範名稱: " + props.getProperty("java.vm.specification.name")); System.out.println("Java的虛擬機器實現版本: " + props.getProperty("java.vm.version")); System.out.println("Java的虛擬機器實現供應商: " + props.getProperty("java.vm.vendor")); System.out.println("Java的虛擬機器實現名稱: " + props.getProperty("java.vm.name")); System.out.println("Java執行時環境規範版本: " + props.getProperty("java.specification.version")); System.out.println("Java執行時環境規範供應商: " + props.getProperty("java.specification.vender")); System.out.println("Java執行時環境規範名稱: " + props.getProperty("java.specification.name")); System.out.println("Java的類格式版本號: " + props.getProperty("java.class.version")); System.out.println("Java的類路徑: " + props.getProperty("java.class.path")); System.out.println("載入庫時搜尋的路徑列表: " + props.getProperty("java.library.path")); System.out.println("預設的臨時檔案路徑: " + props.getProperty("java.io.tmpdir")); System.out.println("一個或多個擴充套件目錄的路徑: " + props.getProperty("java.ext.dirs")); System.out.println("作業系統的名稱: " + props.getProperty("os.name")); System.out.println("作業系統的構架: " + props.getProperty("os.arch")); System.out.println("作業系統的版本: " + props.getProperty("os.version")); System.out.println("檔案分隔符: " + props.getProperty("file.separator")); System.out.println("路徑分隔符: " + props.getProperty("path.separator")); System.out.println("行分隔符: " + props.getProperty("line.separator")); System.out.println("使用者的賬戶名稱: " + props.getProperty("user.name")); System.out.println("使用者的主目錄: " + props.getProperty("user.home")); System.out.println("使用者的當前工作目錄: " + props.getProperty("user.dir")); } private static void memory() throws SigarException { Sigar sigar = new Sigar(); Mem mem = sigar.getMem(); // 記憶體總量 System.out.println("記憶體總量: " + mem.getTotal() / 1024L + "K av"); // 當前記憶體使用量 System.out.println("當前記憶體使用量: " + mem.getUsed() / 1024L + "K used"); // 當前記憶體剩餘量 System.out.println("當前記憶體剩餘量: " + mem.getFree() / 1024L + "K free"); Swap swap = sigar.getSwap(); // 交換區總量 System.out.println("交換區總量: " + swap.getTotal() / 1024L + "K av"); // 當前交換區使用量 System.out.println("當前交換區使用量: " + swap.getUsed() / 1024L + "K used"); // 當前交換區剩餘量 System.out.println("當前交換區剩餘量: " + swap.getFree() / 1024L + "K free"); } private static void cpu() throws SigarException { Sigar sigar = new Sigar(); CpuInfo infos[] = sigar.getCpuInfoList(); CpuPerc cpuList[] = null; System.out.println("cpu 總量引數情況:" + sigar.getCpu()); System.out.println("cpu 總百分比情況:" + sigar.getCpuPerc()); cpuList = sigar.getCpuPercList(); for (int i = 0; i < infos.length; i++) {// 不管是單塊CPU還是多CPU都適用 CpuInfo info = infos[i]; System.out.println("第" + (i + 1) + "塊CPU資訊"); System.out.println("CPU的總量MHz: " + info.getMhz());// CPU的總量MHz System.out.println("CPU生產商: " + info.getVendor());// 獲得CPU的賣主,如:Intel System.out.println("CPU類別: " + info.getModel());// 獲得CPU的類別,如:Celeron System.out.println("CPU快取數量: " + info.getCacheSize());// 緩衝儲存器數量 printCpuPerc(cpuList[i]); } } private static void printCpuPerc(CpuPerc cpu) { System.out.println("CPU使用者使用率: " + CpuPerc.format(cpu.getUser()));// 使用者使用率 System.out.println("CPU系統使用率: " + CpuPerc.format(cpu.getSys()));// 系統使用率 System.out.println("CPU當前等待率: " + CpuPerc.format(cpu.getWait()));// 當前等待率 System.out.println("CPU當前錯誤率: " + CpuPerc.format(cpu.getNice()));// System.out.println("CPU當前空閒率: " + CpuPerc.format(cpu.getIdle()));// 當前空閒率 System.out.println("CPU總的使用率: " + CpuPerc.format(cpu.getCombined()));// 總的使用率 } private static void os() { OperatingSystem OS = OperatingSystem.getInstance(); // 作業系統核心型別如: 386、486、586等x86 System.out.println("作業系統: " + OS.getArch()); System.out.println("作業系統CpuEndian(): " + OS.getCpuEndian());// System.out.println("作業系統DataModel(): " + OS.getDataModel());// // 系統描述 System.out.println("作業系統的描述: " + OS.getDescription()); // 作業系統型別 // System.out.println("OS.getName(): " + OS.getName()); // System.out.println("OS.getPatchLevel(): " + OS.getPatchLevel());// // 作業系統的賣主 System.out.println("作業系統的賣主: " + OS.getVendor()); // 賣主名稱 System.out.println("作業系統的賣主名: " + OS.getVendorCodeName()); // 作業系統名稱 System.out.println("作業系統名稱: " + OS.getVendorName()); // 作業系統賣主型別 System.out.println("作業系統賣主型別: " + OS.getVendorVersion()); // 作業系統的版本號 System.out.println("作業系統的版本號: " + OS.getVersion()); } private static void who() throws SigarException { Sigar sigar = new Sigar(); Who who[] = sigar.getWhoList(); if (who != null && who.length > 0) { for (int i = 0; i < who.length; i++) { // System.out.println("當前系統程序表中的使用者名稱" + String.valueOf(i)); Who _who = who[i]; System.out.println("使用者控制檯: " + _who.getDevice()); System.out.println("使用者host: " + _who.getHost()); // System.out.println("getTime(): " + _who.getTime()); // 當前系統程序表中的使用者名稱 System.out.println("當前系統程序表中的使用者名稱: " + _who.getUser()); } } } private static void file() throws Exception { Sigar sigar = new Sigar(); FileSystem fslist[] = sigar.getFileSystemList(); for (int i = 0; i < fslist.length; i++) { System.out.println("分割槽的碟符名稱" + i); FileSystem fs = fslist[i]; // 分割槽的碟符名稱 System.out.println("碟符名稱: " + fs.getDevName()); // 分割槽的碟符名稱 System.out.println("碟符路徑: " + fs.getDirName()); System.out.println("碟符標誌: " + fs.getFlags());// // 檔案系統型別,比如 FAT32、NTFS System

相關推薦

使用sigar工具獲取伺服器資訊

注意點: 不同機器,放置的位置不同。 例如:將 sigar-amd64-winnt.dll 放置在 C:\Program Files\Java\jdk1.8.0_91\bin (win64) maven依賴 <!-- https://mvnrep

獲取伺服器資訊

#region 獲取伺服器及使用者資訊 private void DataLoad() { DateTime sTime = DateTime.Now; ServerOS = Environment.OSVersion.ToString(); //作業系統: CpuS

使用高德地圖根據經緯度畫出路線、計算收錄路線的總距離、使用第三方工具獲取座標資訊

寫在前面:        最近手裡有一個專案 專案面向的使用群體是公路管理方 大概的主要功能簡概如下 收錄正在修建 / 剛剛修建完畢 / 未被第三方地圖收錄的路線(使用者可以手機記錄新的路線 收錄在自己的平臺裡 但手機記錄弊端過大 還是

【PHP】獲取客戶端(瀏覽器)資訊獲取客戶端系統資訊獲取伺服器資訊

一、PHP獲取客戶端(瀏覽器)資訊函式/** * 獲取客戶端瀏覽器資訊 * @param null * @author https://blog.jjonline.cn/phptech/168.html * @return string */

使用IPMi獲取伺服器的硬體資訊,如風扇轉速、cpu等

開啟IPMI模組 IPMI是伺服器的智慧化管理平臺介面,我們要通過這個介面獲取所有的硬體資訊以及控制伺服器開關機。 使用IPMI的前提是伺服器支援IPMI即帶有BMC的硬體模組,將網線接到BMC模組就可以使用了(具體找運維....)。 IPMI模組配置好以後在瀏覽器中輸

大陸居民身份證、港澳臺居民居住證驗證工具 Python 版 :驗證、獲取基本資訊以及生成假資料

中華人民共和國居民身份證、中華人民共和國港澳居民居住證以及中華人民共和國臺灣居民居住證號碼驗證工具(Python 版)支援 15 位與 18 位號碼。 PHP 版本 安裝 pip install id-validator 使用 440308199901101512 和 610104620927690

伺服器資訊獲取

import javax.servlet.http.HttpServletRequest; import java.net.InetAddress; public class IpUtils { /** * 獲取本機ip * * @r

一個處理微信授權和獲取使用者資訊工具

<?php /** * ECTouch Open Source Project * ============================================================================ * Copyright (c) 2012-201

記錄 網上搜集的自動獲取銀行卡資訊工具

  //////////////////////////////////////////////////////////////////////////////第一種////////////////////////////////////////////////////////////

java 獲取伺服器裝置資訊(監控伺服器

package com.system; import java.net.InetAddress; import java.net.UnknownHostException; import org.hyperic.sigar.CpuInfo; import org.hyper

java使用siger 獲取伺服器硬體資訊(CPU 記憶體 網路 io等)

import java.net.InetAddress;import java.net.UnknownHostException;import java.util.Map;import java.util.Properties;import org.hyperic.sigar.CpuInfo;import o

windows和linux 配置sigar 使用java 獲取系統資訊

下載 配置sigar所需要的包 下載地址:hyperic-sigar下載   配置 開啟下載的檔案,進入lib目錄 hyperic-sigar-1.6.4/sigar-bin/lib windows配置sigar 將 hyperic-sigar-1.6.4/si

PHP 獲取伺服器詳細資訊

獲取系統型別及版本號:    php_uname()     (例:Windows NT COMPUTER 5.1 build 2600) 只獲取系統型別:          php_uname('s')       (或:PHP_OS,例:Windows NT)

Python 3.6 利用psutil 獲取伺服器磁碟資訊

獲取磁碟完整資訊 [[email protected] python_auto]# vim disk.py !/usr/bin/env python import psutil disk = psutil.disk_partitions() #利用psu

Android工具類—— android 從SIM卡獲取聯絡人資訊

<span style="font-size:18px;color:#3333ff;">01./**   02.     * 從SIM卡中讀取聯絡人資訊   03.     * @r

CORS跨域時axios無法獲取伺服器自定義的header資訊

最近用vue.js+axios開發單頁面應用時,需要把自定義資訊(token,uid)放到response  header中返回,如下<?php header("token:www.uxuew.cn"); header("uid:100"); ?>然後在客戶端獲取

運用 Windows 工具獲取 IPv6 配置資訊

運用 Windows 工具獲取 IPv6 配置資訊 本文介紹如何使用命令列工具,獲取執行 Microsoft?Windows?XP Service Pack 2 (SP2)、Windows Server?2003、Windows Vista?(目前處於 beta 測試階段)

c++ 使用RdKafka::KafkaConsumer獲取伺服器配置資訊與消費、同時消費多個topic、設定消費位置

      Kafka是一個推送的訊息框架,支援java、python、c/c++等待。本次與Kafka接觸了一段時間,做個分享,主要是程式碼中的介面,與使用方法。       Kafka使用topic消費,訊息會保留一段時間;每次消費可以指定位置,從不同的位置開始訊息。一

php獲取伺服器作業系統等資訊

下面是PHP獲取當前伺服器資訊的基本語句。 PHP程式版本: <?PHP echo PHP_VERSION; ?> ZEND版本: <?PHP echo zend_version(

獲取UserAgent資訊工具

import java.io.IOException; import java.util.regex.Matcher; import java.util.regex.Pattern; import javax.servlet.http.HttpServletRequest