como verificar pelo menos o espaço livre XG em / var

0

temos a seguinte saída df -h

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

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

como verificar pelo menos 10G de espaço livre em / var em bash / awk / perl one liner

Enquanto isso escrevo esta sintaxe:

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

mas essa sintaxe não é elegante e feia e talvez eu tenha perdido algumas regras

    
por yael 13.03.2018 / 10:39

1 resposta

3

Com um novo GNU df suficiente, você pode extrair apenas o espaço disponível usando a opção --output . E você poderia o resto da comparação com o awk:

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

Mesmo sem isso, se você quiser obter um sistema de arquivos específico, é melhor fazer df /var em vez de df | grep /var (a menos que você queira capturar o caso de nada ser montado em /var ).

Para executar outros comandos com base nisso, com o bash, use o contexto% ar_mético (( )) :

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