main.go 882 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. package main
  2. import (
  3. "fmt"
  4. "os/exec"
  5. "strconv"
  6. "strings"
  7. )
  8. func GetDirectoryDiskUsed(directories []string) (uint64, error) {
  9. cmd := exec.Command("du", "-s")
  10. cmd.Args = append(cmd.Args, directories...)
  11. output, err := cmd.CombinedOutput()
  12. if err != nil {
  13. fmt.Println(err)
  14. return 0, err
  15. }
  16. lines := strings.Split(string(output), "\n")
  17. sum := uint64(0)
  18. for _, line := range lines {
  19. if len(line) > 0 {
  20. fmt.Println(line)
  21. fields := strings.Fields(line)
  22. parseUint, err := strconv.ParseUint(fields[0], 10, 64)
  23. fmt.Println("parseUint", parseUint)
  24. if err != nil {
  25. fmt.Println(err)
  26. return 0, err
  27. }
  28. sum += parseUint
  29. }
  30. }
  31. return sum, nil
  32. }
  33. func main() {
  34. diskUsed, err := GetDirectoryDiskUsed([]string{"/root/cicv-data-closedloop", "/root/pjirobot/data/cicv-data-closedloop"})
  35. if err != nil {
  36. return
  37. }
  38. fmt.Println("diskUsed", diskUsed)
  39. }