package golog import ( "github.com/shirou/gopsutil/cpu" "github.com/shirou/gopsutil/host" "log" ) type systemResult struct { SystemHostname string // 主机名 SystemOs string // 系统类型 SystemVersion string // 系统版本 SystemKernel string // 系统内核 SystemKernelVersion string // 系统内核版本 SystemUpTime uint64 // 系统运行时间 SystemBootTime uint64 // 系统开机时间 CpuCores int // CPU核数 CpuModelName string // CPU型号名称 CpuMhz float64 // CPU兆赫 } func getSystem() (result systemResult) { hInfo, err := host.Info() if err != nil { log.Printf("getSystem.host.Info:%s\n", err) } result.SystemHostname = hInfo.Hostname result.SystemOs = hInfo.OS result.SystemVersion = hInfo.PlatformVersion result.SystemKernel = hInfo.KernelArch result.SystemKernelVersion = hInfo.KernelVersion result.SystemUpTime = hInfo.Uptime if hInfo.BootTime != 0 { result.SystemBootTime = hInfo.BootTime } hCpu, err := cpu.Times(true) if err != nil { log.Printf("getSystem.cpu.Times:%s\n", err) } result.CpuCores = len(hCpu) cInfo, err := cpu.Info() if err != nil { log.Printf("getSystem.cpu.Info:%s\n", err) } if len(cInfo) > 0 { result.CpuModelName = cInfo[0].ModelName result.CpuMhz = cInfo[0].Mhz } return result }