u_disk.go 930 B

1234567891011121314151617181920212223242526272829303132333435
  1. package util
  2. import (
  3. "cicv-data-closedloop/kinglong/common/log"
  4. "os/exec"
  5. "strconv"
  6. "strings"
  7. )
  8. // GetDiskUsagePercent 获取磁盘使用率
  9. func GetDiskUsagePercent() float64 {
  10. // 执行 df 命令获取磁盘使用情况
  11. cmd := exec.Command("df", "--total")
  12. output, err := cmd.Output()
  13. if err != nil {
  14. log.GlobalLogger.Info("执行命令失败:", err)
  15. return 0.0
  16. }
  17. // 解析 df 命令输出,计算磁盘占比
  18. lines := strings.Split(string(output), "\n")
  19. for _, line := range lines[1:] {
  20. fields := strings.Fields(line)
  21. if len(fields) >= 6 && fields[0] == "total" {
  22. //filesystem := fields[0]
  23. total, _ := strconv.ParseFloat(strings.TrimSuffix(fields[1], "G"), 64)
  24. used, _ := strconv.ParseFloat(strings.TrimSuffix(fields[2], "G"), 64)
  25. usedPercent := (used / total) * 100
  26. //fmt.Printf("文件系统 %s 已使用 %.2f%%\n", filesystem, usedPercent)
  27. return usedPercent
  28. }
  29. }
  30. return 0.0
  31. }