Qrunch から引っ越し
使用率はおおよそ以下のようになる。
ceil(100 * used / (used + avail))
size
フィールドではなく used + avail
になっているのは、ファイルシステムによる予約領域を考慮したためと思われる。
これらを呼び出してファイルシステムの使用状況を取得する。
例えば statvfs(3) の manpage を見るとどのようなデータがあるのか書いてある。
struct statvfs {
unsigned long f_bsize; /* file system block size */
unsigned long f_frsize; /* fragment size */
fsblkcnt_t f_blocks; /* size of fs in f_frsize units */
fsblkcnt_t f_bfree; /* # free blocks */
fsblkcnt_t f_bavail; /* # free blocks for unprivileged users */
fsfilcnt_t f_files; /* # inodes */
fsfilcnt_t f_ffree; /* # free inodes */
fsfilcnt_t f_favail; /* # free inodes for unprivileged users */
unsigned long f_fsid; /* file system ID */
unsigned long f_flag; /* mount flags */
unsigned long f_namemax; /* maximum filename length */
};
ext4 はデフォルトで 5% が root ユーザ用に予約されているため、
f_bfree
と f_bavail
が一致しないことが多いだろう。
xfs は ext4 とはアプローチが異なり、ファイルを保存する領域に予約はなく f_bfree
と f_bavail
が一致するようだ。
参考:Does XFS have reserved space for the root user ?
df は statvfs(3)
などで取得した値を元に計算し、小数点以下は切り上げが行われる。
snmpdf は snmpd が statvfs(3)
などで取得した値を受け取って計算し、小数点以下は切り捨てが行われるため、df コマンドの結果とは異なる場合がある。
Crieitは誰でも投稿できるサービスです。 是非記事の投稿をお願いします。どんな軽い内容でも投稿できます。
また、「こんな記事が読みたいけど見つからない!」という方は是非記事投稿リクエストボードへ!
こじんまりと作業ログやメモ、進捗を書き残しておきたい方はボード機能をご利用ください。
ボードとは?
コメント