package util import ( "os/exec" "strconv" "strings" ) // GetDiskUsagePercent 获取磁盘使用率 func GetDiskUsagePercent() (float64, error) { // 执行 df 命令获取磁盘使用情况 cmd := exec.Command("df", "--total") output, err := cmd.Output() if err != nil { return 0.0, err } // 解析 df 命令输出,计算磁盘占比 lines := strings.Split(string(output), "\n") for _, line := range lines[1:] { fields := strings.Fields(line) if len(fields) >= 6 && fields[0] == "total" { //filesystem := fields[0] total, _ := strconv.ParseFloat(strings.TrimSuffix(fields[1], "G"), 64) used, _ := strconv.ParseFloat(strings.TrimSuffix(fields[2], "G"), 64) usedPercent := (used / total) * 100 //fmt.Printf("文件系统 %s 已使用 %.2f%%\n", filesystem, usedPercent) return usedPercent, err } } return 0.0, nil }