Como ativar o comando “df -Pm” para obter nomes de FS que possuam mais de 90% do uso do FS?

1

Estou tentando obter os nomes de todos os discos com pelo menos 90% de uso, usando este oneliner:

df -Pm | awk '+$5 >= 90 {print}'

Mas não mostra o caso "uso de 100%", eu preciso grep para "100%". Por que não funciona corretamente?

    
por LanceBaynes 30.08.2011 / 15:11

3 respostas

2

Você poderia nos dar um exemplo de saída de df -Pm ? Tenho certeza que a maioria de nós não tem 100% ou o espaço em disco usado;)

Acabei de testar hackeando a saída de df e sua parte awk parece estar bem.

$ cat /tmp/1 | awk '+$5 >= 90 {print}'
tmpfs                        1978         1      1978     101% /dev/shm
tmpfs                        1978         1      1977     100% /run
    
por 30.08.2011 / 15:42
0

Eu assumo que o problema é o sinal de porcentagem, que provavelmente transforma o > = em uma comparação de strings. Adicione 0 a $ 5 antes de fazer a comparação, assim você força $ 5 a ser interpretado como um número:

df -P | awk '0 + $5 >= 90 { print }'
    
por 07.09.2011 / 12:29
0

Sugiro uma abordagem ligeiramente alternativa. Um pouco de matemática nunca machucou ninguém.

df -Pml | tail -n +2 | awk '{if ($4/$2 < 0.1) print $1,"is getting full."}'

Isto irá calcular se o sistema de arquivos tem menos de 10% de liberdade (o que é realmente mostrado pelo df, mesmo que a coluna seja rotulada como "Usada", e -l imprime apenas sistemas de arquivos locais). Jogar em tail -n +2 pula o cabeçalho.

    
por 07.09.2011 / 18:57

Tags