From e8bb28fc984b2a0fa0945e9d828ac6d8b0b968a5 Mon Sep 17 00:00:00 2001 From: Nikolay Sivko Date: Tue, 26 Aug 2014 12:38:52 +0400 Subject: [PATCH] disk inodes usage --- disk.go | 4 ++++ disk_unix.go | 4 ++++ disk_windows.go | 5 +++++ 3 files changed, 13 insertions(+) diff --git a/disk.go b/disk.go index 45cb36b..7b3e6bd 100644 --- a/disk.go +++ b/disk.go @@ -10,6 +10,10 @@ type DiskUsageStat struct { Free uint64 `json:"free"` Used uint64 `json:"used"` UsedPercent float64 `json:"usedPercent"` + InodesTotal uint64 `json:"inodesTotal"` + InodesUsed uint64 `json:"inodesUsed"` + InodesFree uint64 `json:"inodesFree"` + InodesUsedPercent float64 `json:"inodesUsedPercent"` } type DiskPartitionStat struct { diff --git a/disk_unix.go b/disk_unix.go index c58c023..403fb30 100644 --- a/disk_unix.go +++ b/disk_unix.go @@ -17,8 +17,12 @@ func DiskUsage(path string) (*DiskUsageStat, error) { Path: path, Total: (uint64(stat.Blocks) * uint64(bsize)) >> 1, Free: (uint64(stat.Bfree) * uint64(bsize)) >> 1, + InodesTotal: (uint64(stat.Files)), + InodesFree: (uint64(stat.Ffree)), } + ret.InodesUsed = (ret.InodesTotal - ret.InodesFree) + ret.InodesUsedPercent = (float64(ret.InodesUsed) / float64(ret.InodesTotal)) * 100.0 ret.Used = (ret.Total - ret.Free) ret.UsedPercent = (float64(ret.Used) / float64(ret.Total)) * 100.0 diff --git a/disk_windows.go b/disk_windows.go index ffc32d8..e8bf318 100644 --- a/disk_windows.go +++ b/disk_windows.go @@ -41,6 +41,11 @@ func DiskUsage(path string) (DiskUsageStat, error) { ret.Used = ret.Total - ret.Free ret.UsedPercent = float64(ret.Used) / float64(ret.Total) * 100.0 + //TODO: implement inodes stat + ret.InodesTotal = 0 + ret.InodesUsed = 0 + ret.InodesFree = 0 + ret.InodesUsedPercent = 0.0 return ret, nil }