孟令鑫 1 년 전
부모
커밋
f521d4fb9f
2개의 변경된 파일69개의 추가작업 그리고 0개의 파일을 삭제
  1. 69 0
      test/disk/main/main.go
  2. 0 0
      test/json/main/main.go

+ 69 - 0
test/disk/main/main.go

@@ -0,0 +1,69 @@
+package main
+
+import (
+	"fmt"
+	"os/exec"
+	"strings"
+)
+
+func getDiskUsage(path string) (uint64, error) {
+	cmd := exec.Command("df", "-B1", path)
+	output, err := cmd.CombinedOutput()
+	if err != nil {
+		return 0, err
+	}
+
+	lines := strings.Split(string(output), "\n")
+	if len(lines) < 2 {
+		return 0, fmt.Errorf("unexpected output from df command")
+	}
+
+	fields := strings.Fields(lines[1])
+	if len(fields) < 3 {
+		return 0, fmt.Errorf("unexpected output format from df command")
+	}
+
+	used := fields[2]
+	usedBytes, err := parseSize(used)
+	if err != nil {
+		return 0, err
+	}
+
+	return usedBytes, nil
+}
+
+func parseSize(sizeStr string) (uint64, error) {
+	var size uint64
+	unit := sizeStr[len(sizeStr)-1]
+	value := sizeStr[:len(sizeStr)-1]
+
+	_, err := fmt.Sscan(value, &size)
+	if err != nil {
+		return 0, err
+	}
+
+	switch unit {
+	case 'B':
+		return size, nil
+	case 'K':
+		return size * 1024, nil
+	case 'M':
+		return size * 1024 * 1024, nil
+	case 'G':
+		return size * 1024 * 1024 * 1024, nil
+	default:
+		return 0, fmt.Errorf("unknown unit: %c", unit)
+	}
+}
+
+func main() {
+	path := "/dev/vdb" // 替换为您要查询的硬盘路径,如 "/dev/sda"
+
+	used, err := getDiskUsage(path)
+	if err != nil {
+		fmt.Println("Error:", err)
+		return
+	}
+
+	fmt.Printf("Used Disk Space: %d bytes\n", used)
+}

+ 0 - 0
test/main/main.go → test/json/main/main.go