66 lines
1.2 KiB
Go
66 lines
1.2 KiB
Go
package nux
|
|
|
|
import (
|
|
"fmt"
|
|
"strings"
|
|
)
|
|
|
|
var FSSPEC_IGNORE = map[string]struct{}{
|
|
"none": struct{}{},
|
|
"nodev": struct{}{},
|
|
"tmpfs": struct{}{},
|
|
"shm": struct{}{},
|
|
"proc": struct{}{},
|
|
}
|
|
|
|
var FSTYPE_IGNORE = map[string]struct{}{
|
|
"cgroup": struct{}{},
|
|
"debugfs": struct{}{},
|
|
"devtmpfs": struct{}{},
|
|
"rpc_pipefs": struct{}{},
|
|
"rootfs": struct{}{},
|
|
}
|
|
|
|
var FSFILE_PREFIX_IGNORE = []string{
|
|
"/dev",
|
|
"/sys",
|
|
"/net",
|
|
"/misc",
|
|
"/proc",
|
|
"/lib",
|
|
}
|
|
|
|
func IgnoreFsFile(fs_file string) bool {
|
|
for _, prefix := range FSFILE_PREFIX_IGNORE {
|
|
if strings.HasPrefix(fs_file, prefix) {
|
|
return true
|
|
}
|
|
}
|
|
|
|
return false
|
|
}
|
|
|
|
type DeviceUsage struct {
|
|
FsSpec string
|
|
FsFile string
|
|
FsVfstype string
|
|
BlocksAll uint64
|
|
BlocksUsed uint64
|
|
BlocksFree uint64
|
|
BlocksUsedPercent float64
|
|
BlocksFreePercent float64
|
|
InodesAll uint64
|
|
InodesUsed uint64
|
|
InodesFree uint64
|
|
InodesUsedPercent float64
|
|
InodesFreePercent float64
|
|
}
|
|
|
|
func (this *DeviceUsage) String() string {
|
|
return fmt.Sprintf("<FsSpec:%s, FsFile:%s, FsVfstype:%s, BPFree:%f...>",
|
|
this.FsSpec,
|
|
this.FsFile,
|
|
this.FsVfstype,
|
|
this.BlocksFreePercent)
|
|
}
|