Go语言 获取服务器资源磁盘Disk情况

1、获取整个磁盘的总量、已使用量、使用率

Go 复制代码
package main

import (
	"fmt"
	"github.com/shirou/gopsutil/disk"
	"log"
)

func main() {
	// 获取所有挂载点的磁盘使用率信息
	partitions, err := disk.Partitions(false)
	if err != nil {
		log.Fatalf("Error getting partitions: %v", err)
	}

	var total uint64
	var used uint64

	for _, partition := range partitions {
		usage, err := disk.Usage(partition.Mountpoint)
		if err != nil {
			log.Printf("Error getting usage for %s: %v", partition.Mountpoint, err)
			continue
		}

		total += usage.Total
		used += usage.Used
	}

	// 计算总使用率
	usagePercent := float64(used) / float64(total) * 100

	// 打印总磁盘使用率信息
	fmt.Printf("Total Disk Usage: %.2f%%\n", usagePercent)
	fmt.Printf("Total: %v GB\n", total/1024/1024/1024)
	fmt.Printf("Used: %v GB\n", used/1024/1024/1024)
	fmt.Printf("Free: %v GB\n", (total-used)/1024/1024/1024)
}

2、获取某个目录的空间总量、剩余量、使用量、使用率

比如:下面的查询根目录的空间大小、剩余空间、使用空间、使用绿

Go 复制代码
	package main

	"github.com/shirou/gopsutil/disk"
	)

	func main() {
		// 获取磁盘使用率信息
		usage, err := disk.Usage("/")
		if err != nil {
			fmt.Printf("Error getting disk usage: %v\n", err)
			return
		}

		// 打印磁盘使用率信息
		fmt.Printf("Disk Usage of /:\n")
		fmt.Printf("Total: %v GB\n", usage.Total/1024/1024/1024)
		fmt.Printf("Free: %v GB\n", usage.Free/1024/1024/1024)
		fmt.Printf("Used: %v GB\n", usage.Used/1024/1024/1024)
		fmt.Printf("Used Percent: %.2f%%\n", usage.UsedPercent)
	}
相关推荐
FfHUCisI3 分钟前
Golang 网络轮询器 netpoll:把阻塞 IO 变成事件通知
开发语言·网络·golang
XiaoQiao6669993 分钟前
C 语言常用头文件及里面核心函数
c语言·开发语言
statistican_ABin5 分钟前
中国宠物经济发展分析报告——基于R语言的2018-2024年宠物市场多维度分析
开发语言·r语言·宠物
烂蜻蜓12 分钟前
Flask入门教程(三十一):实用函数与类API——全局工具函数速查
后端·python·flask
计算机毕设定制辅导-无忧学长13 分钟前
《基于Spring Boot传承之光非遗陶瓷烧造产品交易平台的设计与实现》
java·vue.js·spring boot·后端·毕业设计
Zane199415 分钟前
内存都要回收,为什么JVM偏要把堆分成新生代和老年代
java·后端
Zane199416 分钟前
257 is 257 为什么是 True?小整数缓存背后还藏着一个更容易被忽略的机制
后端·python
matlab代码19 分钟前
基于matlab PCA人脸识别系统【源码63期】
开发语言·matlab
Terra.K20 分钟前
后端开发阶段性总结
java·开发语言·后端
学逆向的22 分钟前
PE——合并节
开发语言·网络安全·pe