package main
import (
"fmt"
"github.com/shirou/gopsutil/cpu"
"github.com/shirou/gopsutil/disk"
"github.com/shirou/gopsutil/host"
"github.com/shirou/gopsutil/mem"
"github.com/shirou/gopsutil/net"
"github.com/shirou/gopsutil/process"
"time"
)
func main() {
//获取本机信息
h,_ := host.Info()
fmt.Println("本机信息:",h)
//获取CPU信息
c,_ := cpu.Info()
fmt.Println("cpu信息:",c)
/*用户CPU时间/系统CPU时间/空闲时间。。。等等
用户CPU时间:就是用户的进程获得了CPU资源以后,在用户态执行的时间。
系统CPU时间:用户进程获得了CPU资源以后,在内核态的执行时间。
*/
c1,_ := cpu.Times(false)
fmt.Println("cpu1:",c1)
//CPU使用率,每秒刷新一次
for{
c2, _ := cpu.Percent(time.Duration(time.Second), false)
fmt.Println(c2)
}
//获取物理内存和交换区内存信息
m1, _ := mem.VirtualMemory()
fmt.Println("m1:",m1)
m2, _ := mem.SwapMemory()
fmt.Println("m2:",m2)
//可以通过psutil获取磁盘分区、磁盘使用率和磁盘IO信息
d1, _ := disk.Partitions(true) //所有分区
fmt.Println("d1:",d1)
d2, _ := disk.Usage("E:") //指定某路径的硬盘使用情况
fmt.Println("d2:",d2)
d3, _ := disk.IOCounters() //所有硬盘的io信息
fmt.Println("d3:",d3)
//获取当前网络连接信息
n1, _ := net.Connections("all") //可填入tcp、udp、tcp4、udp4等等
fmt.Println("n1:",n1)
//获取网络读写字节/包的个数
n2, _ := net.IOCounters(false)
fmt.Println("n2:",n2)
//获取到所有进程的详细信息
p1, _ := process.Pids() //获取当前所有进程的pid
fmt.Println("p1:",p1)
p2,_ := process.GetWin32Proc(1120) //对应pid的进程信息
fmt.Println("p2:",p2)
//fmt.Println(p2[0].ParentProcessID) //获取父进程的pid
}
11、GO语言使用gopsutil包进行机器信息采集
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...