[golang]使用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)
}
}
[golang]使用gopsutil获取系统信息的更多相关文章
- php获取系统信息的方法
php获取系统信息的方法. 用 getenv函数进行处理: <?php $root = getenv('DOCUMENT_ROOT'); ////服务器文档根目录 $port = getenv( ...
- golang windows程序获取管理员权限(UAC ) via gocn
golang windows程序获取管理员权限(UAC ) 在windows上执行有关系统设置命令的时候需要管理员权限才能操作,比如修改网卡的禁用.启用状态.双击执行是不能正确执行命令的,只有右键以管 ...
- 灵活使用getconf命令来获取系统信息
http://blog.chinaunix.net/uid-23105261-id-109513.html 灵活使用getconf命令来获取系统信息 我们时常需要查询系统相关的信息,比如页面大小,整数 ...
- win10 UWP 获取系统信息
获取系统信息 Windows.System.Profile.AnalyticsVersionInfo analyticsVersion = Windows.System.Profile.Analyti ...
- Java如何获取系统信息(包括操作系统、jvm、cpu、内存、硬盘、网络、io等)
1 下载安装sigar-1.6.4.zip 使用java自带的包获取系统数据,容易找不到包,尤其是内存信息不够准确,所以选择使用sigar获取系统信息. 下载地址:http://sourceforge ...
- JAVA获取系统信息以及系统时间
在做测试的时候,经常需要获取系统信息,并且用获取到的系统时间给生成的报告取名字. 以下代码实在TestNG展示的,没有Test NG的话需要些一个main方法. import java.net.Ine ...
- 主机性能监控之wmi 获取系统信息及内存性能信息
标 题: 主机性能监控之wmi 获取系统信息及内存性能信息作 者: itdef链 接: http://www.cnblogs.com/itdef/p/3990240.html 欢迎转帖 请保持文本完整 ...
- 十二、jdk工具之jcmd介绍(堆转储、堆分析、获取系统信息、查看堆外内存)
目录 一.jdk工具之jps(JVM Process Status Tools)命令使用 二.jdk命令之javah命令(C Header and Stub File Generator) 三.jdk ...
- java 获取系统信息及CPU的使用率(转)
java 获取系统信息及CPU的使用率 原文:http://kakaluyi.javaeye.com/blog/211492 最近做个项目,就是要取得cpu占有率等等的系统信息,一开始以为要用动态链接 ...
- psutil——获取系统信息的Python第三方模块
本文摘自廖雪峰大神个人网站:https://www.liaoxuefeng.com/wiki/1016959663602400/1183565811281984 用Python来编写脚本简化日常的运维 ...
随机推荐
- MySQL-分组函数ROLLUP的基本用法
一.ROLLUP简介 ROLLUP是GROUP BY子句的扩展. ROLLUP选项允许包含表示小计的额外行,通常称为超级聚合行,以及总计行. 通过使用ROLLUP选项,可以使用单个查询生成多个分组集. ...
- 【python爬虫】模拟肯德基餐厅地理信息查询
本篇仅在于交流学习 网页地址:http://www.kfc.com.cn/kfccda/storelist/index.aspx 解析页面 在搜索栏输入地理位置便会显示地理信息 解析后发现页面是以js ...
- 2023-03-19:使用Go语言和FFmpeg库实现pcm编码为mp3。
2023-03-19:使用Go语言和FFmpeg库实现pcm编码为mp3. 答案2023-03-19: 本文将介绍如何使用Go语言和FFmpeg库实现PCM音频文件编码为MP3格式.我们将使用moon ...
- Redis基础命令汇总,看这篇就够了
本文首发于公众号:Hunter后端 原文链:Redis基础命令汇总,看这篇就够了 本篇笔记将汇总 Redis 基础命令,包括几个常用的通用命令,和各个类型的数据的操作,包括字符串.哈希.列表.集合.有 ...
- 【GiraKoo】Could NOT find PkgConfig (missing: PKG_CONFIG_EXECUTABLE)
[解决]Could NOT find PkgConfig (missing PKG_CONFIG_EXECUTABLE) 环境 Ubuntu 22.04 现象 在编写CMakeLists.txt时,调 ...
- React Native项目设置路径别名
没有设置路径别名之前代码是这样的: import { px2dp } from '../../utils/screenKits'; 路径相当冗长,看着就头疼.增加了路径别名之后,变成这样 import ...
- nginx发布vue 项目
在本次使用nginx发布vue项目遇到 配置location 始终404 和 在项目子目录点击浏览器刷新出现404问题 使用nginx发布vue项目,为了方便测试就下载了一个nginx 放置自己目录下 ...
- Redash 可视化BI系统部署安装及简单使用
这篇文章主要为介绍一下Redash的使用和安装 概览 Redash 主要使用的语言为 Python 和 TypeScript 这个安装主要是基于Docker 来安装的,官网教程基本没有不是基于Dock ...
- elment UI + EasyExcel 实现 导入
前端组件 <hd-flex> <el-dialog v-model="isUploadDialog" width="50%" lock-scr ...
- 《Just For Fun》:学习即游戏
<Just For Fun>:学习即游戏 最近读完了 Linus 的自传<Just For Fun>,一直想写点东西,但始终苦于工作繁忙,无暇思考该从何写起.技术上自然不用废话 ...