JAVA 如何利用oshi-core-6.4.0.jar,根据IP地址获取linux服务器的CPU、内存、磁盘状态等详细信息
时间: 2024-02-21 21:01:33 浏览: 153
oshi-core-6.1.1.jar中文-英文对照文档.zip
可以使用 OSHI(Open System Hardware Information)这个 Java 库来获取系统硬件信息,包括 CPU、内存、磁盘等状态信息。下面是一个简单的示例代码,可以根据 IP 地址获取 Linux 服务器的 CPU、内存、磁盘等详细信息:
```java
import oshi.SystemInfo;
import oshi.hardware.CentralProcessor;
import oshi.hardware.GlobalMemory;
import oshi.hardware.HardwareAbstractionLayer;
import oshi.software.os.FileSystem;
import oshi.software.os.OSFileStore;
import oshi.software.os.OperatingSystem;
import oshi.util.FormatUtil;
import java.net.InetAddress;
import java.net.UnknownHostException;
public class SystemInfoDemo {
public static void main(String[] args) throws UnknownHostException {
String ipAddress = "192.168.0.1"; // Linux 服务器的 IP 地址
// 根据 IP 地址获取 InetAddress 对象
InetAddress inetAddress = InetAddress.getByName(ipAddress);
// 创建 SystemInfo 对象
SystemInfo systemInfo = new SystemInfo(inetAddress);
// 获取 HardwareAbstractionLayer 对象
HardwareAbstractionLayer hardware = systemInfo.getHardware();
// 获取 CentralProcessor 对象
CentralProcessor processor = hardware.getProcessor();
// 获取 GlobalMemory 对象
GlobalMemory memory = hardware.getMemory();
// 获取 OperatingSystem 对象
OperatingSystem os = systemInfo.getOperatingSystem();
// 获取 FileSystem 对象
FileSystem fileSystem = os.getFileSystem();
// 输出 CPU 信息
System.out.println("CPU: " + processor.getPhysicalProcessorCount() + " cores");
System.out.println("CPU load: " + processor.getSystemCpuLoad() * 100 + "%");
// 输出内存信息
System.out.println("Memory: " + FormatUtil.formatBytes(memory.getTotal()) + " total");
// 输出磁盘信息
OSFileStore[] fileStores = fileSystem.getFileStores();
for (OSFileStore fileStore : fileStores) {
System.out.println("Drive: " + fileStore.getName());
System.out.println("Total space: " + FormatUtil.formatBytes(fileStore.getTotalSpace()));
System.out.println("Usable space: " + FormatUtil.formatBytes(fileStore.getUsableSpace()));
}
}
}
```
需要注意的是,使用 OSHI 库获取系统硬件信息需要在 Linux 服务器上安装并运行 OSHI 的 native 库,具体安装方法可以参考 OSHI 官方文档。
阅读全文