前言

在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)
}
}

[golang]使用gopsutil获取系统信息的更多相关文章

  1. php获取系统信息的方法

    php获取系统信息的方法. 用 getenv函数进行处理: <?php $root = getenv('DOCUMENT_ROOT'); ////服务器文档根目录 $port = getenv( ...

  2. golang windows程序获取管理员权限(UAC ) via gocn

    golang windows程序获取管理员权限(UAC ) 在windows上执行有关系统设置命令的时候需要管理员权限才能操作,比如修改网卡的禁用.启用状态.双击执行是不能正确执行命令的,只有右键以管 ...

  3. 灵活使用getconf命令来获取系统信息

    http://blog.chinaunix.net/uid-23105261-id-109513.html 灵活使用getconf命令来获取系统信息 我们时常需要查询系统相关的信息,比如页面大小,整数 ...

  4. win10 UWP 获取系统信息

    获取系统信息 Windows.System.Profile.AnalyticsVersionInfo analyticsVersion = Windows.System.Profile.Analyti ...

  5. Java如何获取系统信息(包括操作系统、jvm、cpu、内存、硬盘、网络、io等)

    1 下载安装sigar-1.6.4.zip 使用java自带的包获取系统数据,容易找不到包,尤其是内存信息不够准确,所以选择使用sigar获取系统信息. 下载地址:http://sourceforge ...

  6. JAVA获取系统信息以及系统时间

    在做测试的时候,经常需要获取系统信息,并且用获取到的系统时间给生成的报告取名字. 以下代码实在TestNG展示的,没有Test NG的话需要些一个main方法. import java.net.Ine ...

  7. 主机性能监控之wmi 获取系统信息及内存性能信息

    标 题: 主机性能监控之wmi 获取系统信息及内存性能信息作 者: itdef链 接: http://www.cnblogs.com/itdef/p/3990240.html 欢迎转帖 请保持文本完整 ...

  8. 十二、jdk工具之jcmd介绍(堆转储、堆分析、获取系统信息、查看堆外内存)

    目录 一.jdk工具之jps(JVM Process Status Tools)命令使用 二.jdk命令之javah命令(C Header and Stub File Generator) 三.jdk ...

  9. java 获取系统信息及CPU的使用率(转)

    java 获取系统信息及CPU的使用率 原文:http://kakaluyi.javaeye.com/blog/211492 最近做个项目,就是要取得cpu占有率等等的系统信息,一开始以为要用动态链接 ...

  10. psutil——获取系统信息的Python第三方模块

    本文摘自廖雪峰大神个人网站:https://www.liaoxuefeng.com/wiki/1016959663602400/1183565811281984 用Python来编写脚本简化日常的运维 ...

随机推荐

  1. Nuxt3.0中使用EChart可视化图表📊

    在Nuxt3.0项目中用到了可视化图表,于是我用了EChart可视化图表库.但是在官网我没有找到针对在Nuxt3.0中使用EChart的方法,于是在这里记录我的引入EChart并简单使用的步骤.需要声 ...

  2. jmeter如何保存变量到结果jtl文件里

    将变量保存到结果jtl文件里,可以方便的在generate报告时,自行取用jtl中的变量进行展示,实现过程如下: 1.打开jmeter/bin目录下的jmeter.properties文件,将变量名加 ...

  3. 如何从命令行启动 CST 软件?

    众所周知,CST 一贯以优良的界面友好性而著称,用户可以方便快捷的在其 windows 式的界面下进行建模.仿真及结果查看和处理等操作.然而,在某些特定情况下,也需要 CST 进行后台式的运行,比如需 ...

  4. HTML渲染机制

    一直写页面但是很少对一些较深的运行机制的了解,这次趁休假查了一些相关的资料加上个人理解,记录一下关于html渲染的整个过程,也加深一下自己对html渲染的理解 一.先借一张图来看看html的整个加载过 ...

  5. 小程序使用echarts 在一个页面打印多个饼图的坑

    一.下载echarts微信版 下载地址:https://github.com/ecomfe/echarts-for-weixin 或者直接云盘下载 https://pan.baidu.com/s/1i ...

  6. Mac常用文件解压命令

    tar 解压:tar xvf fileName.tar 压缩:tar cvf fileName.tar directoryName rar 1.安装rar 下载RAR https://www.rarl ...

  7. bulkWrite探秘

    MongoDB有很多有趣的内置方法,其中为了批量处理一些写入操作,并且可以按照一定顺序执行,自从3.2版本之后提供了该批量方法:bulkWrite. 它的语法很简单: db.collection.bu ...

  8. 如何让别人访问你本地允许的Vue本地项目

    步骤一: 将config/index.js  中的host: localhost    改为   host:'0.0.0.0'步骤二:在package.json  将scripts 下面的dev  后 ...

  9. LLE算法在自然语言生成中的应用:实现文本到语音的情感迁移

    目录 自然语言生成(Natural Language Generation,NLP)是人工智能领域的一个分支,它利用大量的文本数据训练出语言模型,从而实现对自然语言的生成和理解.在NLP中,情感迁移( ...

  10. maven从远程仓库下载依赖包失败(因权限问题导致)

    背景 在学习rocketMq时,编译官方提供的可视化项目:rocketmq-dashboard,频频失败,报以下错误 Could not transfer artifact org.apache.ro ...