package main
import (
"fmt"
"github.com/shirou/gopsutil/cpu"
"github.com/shirou/gopsutil/disk"
"github.com/shirou/gopsutil/host"
"github.com/shirou/gopsutil/load"
"github.com/shirou/gopsutil/mem"
"github.com/shirou/gopsutil/net"
"time"
)
func main() {
getCpuInfo()
getCpuLoad()
fmt.Println("----------")
getMemInfo()
fmt.Println("----------")
getHostInfo()
fmt.Println("----------")
getDiskInfo()
fmt.Println("----------")
getNetInfo()
}
func getCpuInfo() {
cpuNumber, err := cpu.Counts(true)
if err != nil {
fmt.Println(err.Error())
}
fmt.Println(fmt.Sprintf("CPU核心数: %v", cpuNumber))
cpuPercent, err := cpu.Percent(time.Second, true)
if err != nil {
fmt.Println(err.Error())
}
fmt.Println(fmt.Sprintf("CPU使用率: %.1f%%", cpuPercent[0]))
}
func getCpuLoad() {
loadInfo, err := load.Avg()
if err != nil {
fmt.Println(err.Error())
}
fmt.Println(fmt.Sprintf("CPU平均负载: %v", loadInfo))
}
func getMemInfo() {
memInfo, err := mem.VirtualMemory()
if err != nil {
fmt.Println(err.Error())
}
memTotal := memInfo.Total / 1024 / 1024 / 1024
fmt.Println(fmt.Sprintf("总内存: %v GB", memTotal))
memUsed := memInfo.Used / 1024 / 1024
fmt.Println(fmt.Sprintf("已用内存: %v MB", memUsed))
memAva := memInfo.Available / 1024 / 1024
fmt.Println(fmt.Sprintf("可用内存: %v MB", memAva))
memUsedPercent := memInfo.UsedPercent
fmt.Println(fmt.Sprintf("内存使用率: %.1f%%", memUsedPercent))
}
func getHostInfo() {
hostInfo, err := host.Info()
if err != nil {
fmt.Println(err.Error())
}
fmt.Println(fmt.Sprintf("主机名: %v", hostInfo.Hostname))
fmt.Println(fmt.Sprintf("操作系统: %v", hostInfo.Platform))
}
func getDiskInfo() {
diskPart, err := disk.Partitions(false)
if err != nil {
fmt.Println(err)
}
for _, dp := range diskPart {
fmt.Println(dp)
diskUsed, _ := disk.Usage(dp.Mountpoint)
fmt.Println(fmt.Sprintf("分区总大小: %d MB", diskUsed.Total/1024/1024))
fmt.Println(fmt.Sprintf("分区使用率: %.1f%%", diskUsed.UsedPercent))
fmt.Println(fmt.Sprintf("分区inode使用率: %.1f%%", diskUsed.InodesUsedPercent))
}
}
func getNetInfo() {
info, _ := net.IOCounters(true)
for index, v := range info {
fmt.Println(fmt.Sprintf("%v:%v send:%v recv:%v", index, v, v.BytesSent, v.BytesRecv))
}
}
输出
CPU核心数: 12
CPU使用率: 4.6%
CPU平均负载: {"load1":0,"load5":0,"load15":0}
----------
总内存: 31 GB
已用内存: 26276 MB
可用内存: 6324 MB
内存使用率: 80.0%
----------
主机名: 无情哈拉少
操作系统: Microsoft Windows 11 Pro
----------
The network path was not found.
{"device":"C:","mountpoint":"C:","fstype":"NTFS","opts":"rw.compress"}
分区总大小: 102412 MB
分区使用率: 90.8%
分区inode使用率: 0.0%
{"device":"D:","mountpoint":"D:","fstype":"NTFS","opts":"rw.compress"}
分区总大小: 186367 MB
分区使用率: 13.4%
分区inode使用率: 0.0%
{"device":"E:","mountpoint":"E:","fstype":"NTFS","opts":"rw.compress"}
分区总大小: 187371 MB
分区使用率: 68.3%
分区inode使用率: 0.0%
{"device":"F:","mountpoint":"F:","fstype":"NTFS","opts":"rw.compress"}
分区总大小: 5723148 MB
分区使用率: 1.9%
分区inode使用率: 0.0%
----------
0:{"name":"以太网","bytesSent":0,"bytesRecv":0,"packetsSent":0,"packetsRecv":0,"errin":0,"errout":0,"dropin":0,"dropout":0,"fifoin":0,"fifoout":0} send:0 recv:0
1:{"name":"本地连接* 9","bytesSent":0,"bytesRecv":0,"packetsSent":0,"packetsRecv":0,"errin":0,"errout":0,"dropin":0,"dropout":0,"fifoin":0,"fifoout":0} send:0 recv:0
2:{"name":"本地连接* 10","bytesSent":0,"bytesRecv":0,"packetsSent":0,"packetsRecv":0,"errin":0,"errout":0,"dropin":0,"dropout":0,"fifoin":0,"fifoout":0} send:0 recv:0
3:{"name":"VMware Network Adapter VMnet1","bytesSent":7284264534016,"bytesRecv":94489280512,"packetsSent":81604378624,"packetsRecv":94489280512,"errin":0,"errout":0,"dropin":0,"dropout":0,"fifoin":0,"fifoout":0} send:7284264534016 recv:94489280512
4:{"name":"VMware Network Adapter VMnet8","bytesSent":3704679875739648,"bytesRecv":6736767872925696,"packetsSent":3690893030719488,"packetsRecv":6736505879920640,"errin":0,"errout":0,"dropin":0,"dropout":0,"fifoin":0,"fifoout":0} send:3704679875739648 recv:6736767872925696
5:{"name":"WLAN 2","bytesSent":301329291965104128,"bytesRecv":1938900090278117376,"packetsSent":2245920003457024,"packetsRecv":6078259192135680,"errin":0,"errout":0,"dropin":0,"dropout":0,"fifoin":0,"fifoout":0} send:301329291965104128 recv:1938900090278117376
6:{"name":"Loopback Pseudo-Interface 1","bytesSent":0,"bytesRecv":0,"packetsSent":0,"packetsRecv":0,"errin":0,"errout":0,"dropin":0,"dropout":0,"fifoin":0,"fifoout":0} send:0 recv:0
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具