diff options
| author | Chris Lu <chris.lu@gmail.com> | 2020-04-04 13:17:34 -0700 |
|---|---|---|
| committer | Chris Lu <chris.lu@gmail.com> | 2020-04-04 13:17:34 -0700 |
| commit | d1d9137e8c1f32a6c44896590bc859c46e4cf68f (patch) | |
| tree | 76b1203e56481c491e175cf98f60a0d0dc8f401b /unmaintained/check_disk_size | |
| parent | f7b5a1d6979835d97de1750896c0ebe366c5241c (diff) | |
| download | seaweedfs-d1d9137e8c1f32a6c44896590bc859c46e4cf68f.tar.xz seaweedfs-d1d9137e8c1f32a6c44896590bc859c46e4cf68f.zip | |
add a tool to check disk status
Diffstat (limited to 'unmaintained/check_disk_size')
| -rw-r--r-- | unmaintained/check_disk_size/check_disk_size.go | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/unmaintained/check_disk_size/check_disk_size.go b/unmaintained/check_disk_size/check_disk_size.go new file mode 100644 index 000000000..0bf4f3290 --- /dev/null +++ b/unmaintained/check_disk_size/check_disk_size.go @@ -0,0 +1,37 @@ +package main + +import ( + "flag" + "fmt" + "syscall" +) + +var ( + dir = flag.String("dir", ".", "the directory which uses a disk") +) + +func main() { + flag.Parse() + + fillInDiskStatus(*dir) +} + +func fillInDiskStatus(dir string) { + fs := syscall.Statfs_t{} + err := syscall.Statfs(dir, &fs) + if err != nil { + fmt.Printf("failed to statfs on %s: %v\n", dir, err) + return + } + fmt.Printf("statfs: %+v\n", fs) + fmt.Println() + + total := fs.Blocks * uint64(fs.Bsize) + free := fs.Bfree * uint64(fs.Bsize) + fmt.Printf("Total: %d blocks x %d block size = %d bytes\n", fs.Blocks, uint64(fs.Bsize), total) + fmt.Printf("Free : %d blocks x %d block size = %d bytes\n", fs.Bfree, uint64(fs.Bsize), free) + fmt.Printf("Used : %d blocks x %d block size = %d bytes\n", fs.Blocks-fs.Bfree, uint64(fs.Bsize), total-free) + fmt.Printf("Free Percentage : %.2f%%\n", float32((float64(free)/float64(total))*100)) + fmt.Printf("Used Percentage : %.2f%%\n", float32((float64(total-free)/float64(total))*100)) + return +} |
