...

Package disk

import "github.com/shirou/gopsutil/disk"
Overview
Index

Overview ▾

Constants

const (
    // man statfs
    ADFS_SUPER_MAGIC      = 0xadf5
    AFFS_SUPER_MAGIC      = 0xADFF
    BDEVFS_MAGIC          = 0x62646576
    BEFS_SUPER_MAGIC      = 0x42465331
    BFS_MAGIC             = 0x1BADFACE
    BINFMTFS_MAGIC        = 0x42494e4d
    BTRFS_SUPER_MAGIC     = 0x9123683E
    CGROUP_SUPER_MAGIC    = 0x27e0eb
    CIFS_MAGIC_NUMBER     = 0xFF534D42
    CODA_SUPER_MAGIC      = 0x73757245
    COH_SUPER_MAGIC       = 0x012FF7B7
    CRAMFS_MAGIC          = 0x28cd3d45
    DEBUGFS_MAGIC         = 0x64626720
    DEVFS_SUPER_MAGIC     = 0x1373
    DEVPTS_SUPER_MAGIC    = 0x1cd1
    EFIVARFS_MAGIC        = 0xde5e81e4
    EFS_SUPER_MAGIC       = 0x00414A53
    EXT_SUPER_MAGIC       = 0x137D
    EXT2_OLD_SUPER_MAGIC  = 0xEF51
    EXT2_SUPER_MAGIC      = 0xEF53
    EXT3_SUPER_MAGIC      = 0xEF53
    EXT4_SUPER_MAGIC      = 0xEF53
    FUSE_SUPER_MAGIC      = 0x65735546
    FUTEXFS_SUPER_MAGIC   = 0xBAD1DEA
    HFS_SUPER_MAGIC       = 0x4244
    HFSPLUS_SUPER_MAGIC   = 0x482b
    HOSTFS_SUPER_MAGIC    = 0x00c0ffee
    HPFS_SUPER_MAGIC      = 0xF995E849
    HUGETLBFS_MAGIC       = 0x958458f6
    ISOFS_SUPER_MAGIC     = 0x9660
    JFFS2_SUPER_MAGIC     = 0x72b6
    JFS_SUPER_MAGIC       = 0x3153464a
    MINIX_SUPER_MAGIC     = 0x137F /* orig. minix */
    MINIX_SUPER_MAGIC2    = 0x138F /* 30 char minix */
    MINIX2_SUPER_MAGIC    = 0x2468 /* minix V2 */
    MINIX2_SUPER_MAGIC2   = 0x2478 /* minix V2, 30 char names */
    MINIX3_SUPER_MAGIC    = 0x4d5a /* minix V3 fs, 60 char names */
    MQUEUE_MAGIC          = 0x19800202
    MSDOS_SUPER_MAGIC     = 0x4d44
    NCP_SUPER_MAGIC       = 0x564c
    NFS_SUPER_MAGIC       = 0x6969
    NILFS_SUPER_MAGIC     = 0x3434
    NTFS_SB_MAGIC         = 0x5346544e
    OCFS2_SUPER_MAGIC     = 0x7461636f
    OPENPROM_SUPER_MAGIC  = 0x9fa1
    PIPEFS_MAGIC          = 0x50495045
    PROC_SUPER_MAGIC      = 0x9fa0
    PSTOREFS_MAGIC        = 0x6165676C
    QNX4_SUPER_MAGIC      = 0x002f
    QNX6_SUPER_MAGIC      = 0x68191122
    RAMFS_MAGIC           = 0x858458f6
    REISERFS_SUPER_MAGIC  = 0x52654973
    ROMFS_MAGIC           = 0x7275
    SELINUX_MAGIC         = 0xf97cff8c
    SMACK_MAGIC           = 0x43415d53
    SMB_SUPER_MAGIC       = 0x517B
    SOCKFS_MAGIC          = 0x534F434B
    SQUASHFS_MAGIC        = 0x73717368
    SYSFS_MAGIC           = 0x62656572
    SYSV2_SUPER_MAGIC     = 0x012FF7B6
    SYSV4_SUPER_MAGIC     = 0x012FF7B5
    TMPFS_MAGIC           = 0x01021994
    UDF_SUPER_MAGIC       = 0x15013346
    UFS_MAGIC             = 0x00011954
    USBDEVICE_SUPER_MAGIC = 0x9fa2
    V9FS_MAGIC            = 0x01021997
    VXFS_SUPER_MAGIC      = 0xa501FCF5
    XENFS_SUPER_MAGIC     = 0xabba1974
    XENIX_SUPER_MAGIC     = 0x012FF7B4
    XFS_SUPER_MAGIC       = 0x58465342

    AFS_SUPER_MAGIC             = 0x5346414F
    AUFS_SUPER_MAGIC            = 0x61756673
    ANON_INODE_FS_SUPER_MAGIC   = 0x09041934
    CEPH_SUPER_MAGIC            = 0x00C36400
    ECRYPTFS_SUPER_MAGIC        = 0xF15F
    FAT_SUPER_MAGIC             = 0x4006
    FHGFS_SUPER_MAGIC           = 0x19830326
    FUSEBLK_SUPER_MAGIC         = 0x65735546
    FUSECTL_SUPER_MAGIC         = 0x65735543
    GFS_SUPER_MAGIC             = 0x1161970
    GPFS_SUPER_MAGIC            = 0x47504653
    MTD_INODE_FS_SUPER_MAGIC    = 0x11307854
    INOTIFYFS_SUPER_MAGIC       = 0x2BAD1DEA
    ISOFS_R_WIN_SUPER_MAGIC     = 0x4004
    ISOFS_WIN_SUPER_MAGIC       = 0x4000
    JFFS_SUPER_MAGIC            = 0x07C0
    KAFS_SUPER_MAGIC            = 0x6B414653
    LUSTRE_SUPER_MAGIC          = 0x0BD00BD0
    NFSD_SUPER_MAGIC            = 0x6E667364
    PANFS_SUPER_MAGIC           = 0xAAD7AAEA
    RPC_PIPEFS_SUPER_MAGIC      = 0x67596969
    SECURITYFS_SUPER_MAGIC      = 0x73636673
    UFS_BYTESWAPPED_SUPER_MAGIC = 0x54190100
    VMHGFS_SUPER_MAGIC          = 0xBACBACBC
    VZFS_SUPER_MAGIC            = 0x565A4653
    ZFS_SUPER_MAGIC             = 0x2FC12FC1
)
const (
    SectorSize = 512
)

func GetDiskSerialNumber

func GetDiskSerialNumber(name string) string

GetDiskSerialNumber returns Serial Number of given device or empty string on error. Name of device is expected, eg. /dev/sda

func GetDiskSerialNumberWithContext

func GetDiskSerialNumberWithContext(ctx context.Context, name string) string

func GetLabel

func GetLabel(name string) string

GetLabel returns label of given device or empty string on error. Name of device is expected, eg. /dev/sda Supports label based on devicemapper name See https://www.kernel.org/doc/Documentation/ABI/testing/sysfs-block-dm

func IOCounters

func IOCounters(names ...string) (map[string]IOCountersStat, error)

func IOCountersWithContext

func IOCountersWithContext(ctx context.Context, names ...string) (map[string]IOCountersStat, error)

type IOCountersStat

type IOCountersStat struct {
    ReadCount        uint64 `json:"readCount"`
    MergedReadCount  uint64 `json:"mergedReadCount"`
    WriteCount       uint64 `json:"writeCount"`
    MergedWriteCount uint64 `json:"mergedWriteCount"`
    ReadBytes        uint64 `json:"readBytes"`
    WriteBytes       uint64 `json:"writeBytes"`
    ReadTime         uint64 `json:"readTime"`
    WriteTime        uint64 `json:"writeTime"`
    IopsInProgress   uint64 `json:"iopsInProgress"`
    IoTime           uint64 `json:"ioTime"`
    WeightedIO       uint64 `json:"weightedIO"`
    Name             string `json:"name"`
    SerialNumber     string `json:"serialNumber"`
    Label            string `json:"label"`
}

func (IOCountersStat) String

func (d IOCountersStat) String() string

type PartitionStat

type PartitionStat struct {
    Device     string `json:"device"`
    Mountpoint string `json:"mountpoint"`
    Fstype     string `json:"fstype"`
    Opts       string `json:"opts"`
}

func Partitions

func Partitions(all bool) ([]PartitionStat, error)

Partitions returns disk partitions. If all is false, returns physical devices only (e.g. hard disks, cd-rom drives, USB keys) and ignore all others (e.g. memory partitions such as /dev/shm)

'all' argument is ignored for BSD, see: https://github.com/giampaolo/psutil/issues/906

func PartitionsWithContext

func PartitionsWithContext(ctx context.Context, all bool) ([]PartitionStat, error)

func (PartitionStat) String

func (d PartitionStat) String() string

type UsageStat

type UsageStat struct {
    Path              string  `json:"path"`
    Fstype            string  `json:"fstype"`
    Total             uint64  `json:"total"`
    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"`
}

func Usage

func Usage(path string) (*UsageStat, error)

Usage returns a file system usage. path is a filesystem path such as "/", not device file path like "/dev/vda1". If you want to use a return value of disk.Partitions, use "Mountpoint" not "Device".

func UsageWithContext

func UsageWithContext(ctx context.Context, path string) (*UsageStat, error)

func (UsageStat) String

func (d UsageStat) String() string