如何验证 /var 上至少有 XG 可用空间

如何验证 /var 上至少有 XG 可用空间

我们有以下 df -h 输出

[root@trump var]# df -h | grep "/var"

/dev/mapper/vg-lvm_var   101G   85G   17G  84% /var

如何在 bash/awk/perl 中验证 /var 上至少有 10G 可用空间

同时我写了这个语法:

[[ ` df -h | grep "/var" | awk '{print $4}' | sed s'/G//g' ` -lt 10 ]] && echo "/var need at least 10G"

但这种语法并不优雅且丑陋,也许我错过了一些规则

答案1

使用足够新的 GNU df,您可以使用该选项仅提取可用空间--output。您可以将其余部分与 awk 进行比较:

$ df -k --output=avail /var | awk 'NR == 2 && ($1 < 10*2**20) {print "/var need at least 10G"}'
/var need at least 10G

即使没有这个,如果你想获得一个特定的文件系统,最好这样做df /vardf | grep /var除非你想捕获没有安装任何东西的情况/var)。

要使用 bash 运行基于此的其他命令,请使用(( ))算术上下文:

if (( $(df -k --output=avail /var | tail -1) < 10*2**20 ))
then
    log "/var need at least 10G"
fi 

相关内容