【go筆記】使用gopsutil獲取系統資訊
阿新 • • 發佈:2021-12-12
go語言學習筆記之使用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)
}
}