1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- package main
- import (
- "fmt"
- "os/exec"
- "strconv"
- "strings"
- )
- // getDiskUsage 解析 df 命令的输出
- // df -B1 /dev/vdb
- // Filesystem 1B-blocks Used Available Use% Mounted on
- // /dev/vdb 527371075584 16390344704 484120408064 4% /mnt/disk001
- 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")
- }
- parseUint, _ := strconv.ParseUint(fields[2], 10, 64)
- return parseUint, nil
- }
- 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)
- }
|