Como obtenho / espaço disponível com “df” e o envio para um arquivo de log?

1

Com o comando df , posso obter algo como:

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

E se eu quiser manter o número 180242500 registrado de / e armazená-lo em um arquivo (como disk-space-available.txt )

Se eu usar df >> disk-space-available.txt , ele armazenará todo o conteúdo enquanto eu quero apenas o número bruto nesse arquivo.

Por exemplo, se houver algo assim, está funcionando:

df -OUTPUT=raw-available-number
180242500

O que posso fazer?

    
por AGamePlayer 05.09.2015 / 06:38

3 respostas

4

Você pode filtrar facilmente com awk , verificando se o último campo é igual a / e, em seguida, imprimir o campo 4th correspondente:

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

ou:

df / | awk 'NR == 2 { print $4 }' >> output
    
por 05.09.2015 / 06:49
5

Com df do GNU coreutils:

$> df --output=avail /
Avail
12345
$> df --output=avail / | grep -v Avail
12345
    
por 05.09.2015 / 09:49
1

Se você não tem a versão GNU de 'df', você pode usar 'stat' para obter o número e o tamanho dos blocos disponíveis.

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

Você pode multiplicá-los para obter os bytes disponíveis.

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

Você pode, opcionalmente, convertê-lo para legível por humanos com numfmt --to=iec .

    
por 28.09.2018 / 00:29

Tags