main.go 842 B

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