espaço em disco do Linux

3

Eu tenho procurado e descobri que você pode encontrar seu espaço em disco com df -hT . Então eu usei para obter o espaço em disco (no total) e quanto resta. Mas a questão é, eu me pergunto se existem outras maneiras de obter as informações? O código que eu copiei aqui dará espaço total em GB (adicionei o B no final) com o awk, como você pode ver, e também com o awk.

Isso pode ser muito confuso para alguns de vocês (eu ainda estou aprendendo bash), então se você tem alguma recomendação, então sinta-se à vontade para me dar. Lembre-se de que estou procurando opções que funcionem em todos os servidores / máquinas, sem software que precise ser baixado com o apt-get.

df -hT /home | awk '{print $3}' | awk 'FNR == 2 {print $1 "\B"}'
awk: cmd. line:1: warning: escape sequence '\B' treated as plain 'B'
912GB

Também não tenho idéia de como se livrar da mensagem awk. Isso pode parecer um pouco estranho, mas eu tenho que começar de algum lugar!

    
por TheSebM8 13.10.2017 / 22:06

2 respostas

1

Remover a barra invertida funciona para mim:

df -hT /home | awk '{print $3}' | awk 'FNR == 2 {print $1 "B"}'

e pode ser simplificado para

df -hT /home | awk 'FNR == 2 {print $3 "B"}'
    
por 13.10.2017 / 22:11
1

Para responder à sua pergunta sobre outras formas de obter as informações, coreutils stat tem a capacidade de consultar informações do sistema de arquivos (o syscall subjacente é statfs ), usando a opção -f . Isso pode dar informações mais detalhadas que o simples df . Por exemplo (veja stat manpage para lista completa dos especificadores de formato):

$ stat -f /tmp --printf='{"block-size": %S, "total-blocks": %b, "free-blocks-users": %a, "free-blocks-root": %f}\n'
{"block-size": 4096, "total-blocks": 7559140, "free-blocks-users": 1693162, "free-blocks-root": 2077148}

Um exemplo talvez mais relevante, isso imprimirá o tamanho do sistema de arquivos em blocos:

$ stat -f /tmp --printf '%b\n'
7559140

Ou, para computar bytes, multiplique pelo tamanho do bloco (aqui, usando o GNU dc para o cálculo numérico):

$ stat -f /tmp --printf '%S %b *p' | dc
30962237440

Ou, para calcular o tamanho em gigabytes com dois dígitos fracionários e acrescente a string "GB":

$ stat -f /tmp --printf '%S %b * 2k 1024 dd**/n [GB]p' | dc
28.83GB

Dependendo da linguagem de programação que você gostaria de usar para isso tarefa, um wrapper direto para statfs pode estar disponível.

    
por 13.10.2017 / 22:38