Linux

如何驗證 /var 上至少有 XG 可用空間

  • March 13, 2018

我們有以下 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"

但這種語法並不優雅和醜陋,也許我錯過了一些規則

使用足夠新的 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 

引用自:https://unix.stackexchange.com/questions/429900