如何使用“df”获取/可用空间并将其输出到日志文件?

如何使用“df”获取/可用空间并将其输出到日志文件?

通过命令df,我可以得到类似的东西:

Filesystem     1K-blocks     Used Available Use% Mounted on
/dev/root      197844228 15578648 180242500   8% /
devtmpfs         4101368        0   4101368   0% /dev
tmpfs             820648      292    820356   1% /run
tmpfs               5120        0      5120   0% /run/lock
tmpfs            1693720        4   1693716   1% /run/shm

如果我只想保留180242500记录的编号/并将其存储在文件中(如disk-space-available.txt

如果我使用df >> disk-space-available.txt它将存储所有内容,而我只想要该文件中的原始数字。

例如,如果有这样的东西,那么它正在工作:

df -OUTPUT=raw-available-number
180242500

我能做些什么?

答案1

来自dfGNU coreutils 的:

$> df --output=avail /
Avail
12345
$> df --output=avail / | grep -v Avail
12345

答案2

您可以使用轻松过滤awk,检查最后一个字段是否相等/,然后打印相应的4th字段:

df | awk '$NF == "/" { print $4 }' >> output

或者:

df / | awk 'NR == 2 { print $4 }' >> output

答案3

如果您没有 GNU 版本的“df”,则可以使用“stat”来获取可用块的数量和大小。

stat --file-system --format="%f %S" /

然后您可以将它们相乘以获得可用字节。

(stat=$(stat --file-system --format="%f %S" /) && echo $(( ${stat/ /*} )))

您可以选择将其转换为人类可读的格式numfmt --to=iec

相关内容