[golang]使用gopsutil获取系统信息
前言
在python中有个psutil
库用于获取系统信息,而go语言也有一个类似的库——gopsutil
,功能差不多。
项目地址:https://github.com/shirou/gopsutil
安装:
go get github.com/shirou/gopsutil/v3
获取CPU信息
import (
"github.com/shirou/gopsutil/v3/cpu"
"fmt"
"time"
)
func getCpuInfo() {
// cpuInfo,err := cpu.Info()
// if err != nil {
// fmt.Println("get cpu info fail, err: %v",err)
// }
// for _,ci := range cpuInfo {
// fmt.Printf("%v \n",ci)
// }
cpuPercent,_ := cpu.Percent(time.Second,true)
fmt.Printf("CPU使用率: %.3f%% \n",cpuPercent[0])
cpuNumber,_ := cpu.Counts(true)
fmt.Printf("CPU核心数: %v \n",cpuNumber)
}
获取内存信息
import (
"github.com/shirou/gopsutil/v3/mem"
)
func getMemInfo() {
memInfo,err := mem.VirtualMemory()
if err != nil {
fmt.Println("get memory info fail. err: ", err)
}
// 获取总内存大小,单位GB
memTotal := memInfo.Total/1024/1024/1024
// 获取已用内存大小,单位MB
memUsed := memInfo.Used/1024/1024
// 可用内存大小
memAva := memInfo.Available/1024/1024
// 内存可用率
memUsedPercent := memInfo.UsedPercent
fmt.Printf("总内存: %v GB, 已用内存: %v MB, 可用内存: %v MB, 内存使用率: %.3f %% \n",memTotal,memUsed,memAva,memUsedPercent)
}
获取系统负载
import (
"github.com/shirou/gopsutil/v3/load"
)
func getSysLoad() {
loadInfo,err := load.Avg()
if err != nil {
fmt.Println("get average load fail. err: ",err)
}
fmt.Printf("系统平均负载: %v \n",loadInfo)
}
获取主机信息
import "github.com/shirou/gopsutil/v3/host"
func getHostInfo() {
hostInfo,err := host.Info()
if err != nil {
fmt.Println("get host info fail, error: ",err)
}
fmt.Printf("hostname is: %v, os platform: %v \n",hostInfo.Hostname,hostInfo.Platform)
}
获取硬盘存储信息
import "github.com/shirou/gopsutil/v3/disk"
func getDiskInfo() {
diskPart,err := disk.Partitions(false)
if err != nil {
fmt.Println(err)
}
// fmt.Println(diskPart)
for _,dp := range diskPart {
fmt.Println(dp)
diskUsed,_ := disk.Usage(dp.Mountpoint)
fmt.Printf("分区总大小: %d MB \n",diskUsed.Total/1024/1024)
fmt.Printf("分区使用率: %.3f %% \n",diskUsed.UsedPercent)
fmt.Printf("分区inode使用率: %.3f %% \n",diskUsed.InodesUsedPercent)
}
}
本文来自博客园,作者:花酒锄作田,转载请注明原文链接:https://www.cnblogs.com/XY-Heruo/p/15679182.html