Exibe o espaço livre do sistema de arquivos disponível para o usuário root

9

Por padrão, o Linux reserva uma fração de um sistema de arquivos para o usuário root, pelo menos no ext4 (para impedir que usuários comuns encham a unidade completamente e travem o sistema, e reduzam a fragmentação). No entanto, df exibe apenas o espaço livre aparente para usuários regulares (mesmo quando executado como root). Como você exibe o espaço livre "real", que seria acessível ao root?

    
por Mechanical snail 03.07.2012 / 07:56

3 respostas

6

Não tenho certeza se existe uma ferramenta incorporada, mas supondo que você tenha deixado o reservado com o valor padrão de 5%, isso informará:

df / | grep dev | cut -f 3,6 -d\  | awk '{print ($1*.05)+$2}'

df a raiz, grep para a linha com dev in (para remover o cabeçalho), cut do tamanho e campos disponíveis, use um script awk para calcular 5% do tamanho do disco adicionado ao disponível.

Você pode extrair a reserva real de tune2fs -l <device> e combinar isso com o acima em um script.

    
por 03.07.2012 / 08:52
13

Usando o comando tune2fs (encontrado em / sbin / tune2fs ), você pode determinar facilmente o espaço reservado : (e mais! )

tune2fs -l /dev/sda1

Eu fornecerei as informações do meu sistema como referência, e removerei as linhas estranhas que não são importantes para essa pergunta:

O cabeçalho ... e o nome do volume, eu rotulo todas as minhas unidades, facilita a identificação, se necessário.

tune2fs 1.42.4 (12-Jun-2012)
Filesystem volume name:   xenon
Last mounted on:          /
...

REALMENTE quero que isso diga "limpo" enquanto o sistema está em execução. Honesto!

Filesystem state:         clean

Aqui é onde as informações de capacidade de armazenamento de dados começam:

Aqui você pode ver que eu tenho 121,179,648 blocos no total ... com um tamanho de bloco de 4K (4096), que se multiplica para um grande número (462-ish GB). (O tamanho do bloco é anotado abaixo)

Block count:              121179648

E os blocos reservados ... olhando o número acima e o número abaixo ... você deve ser capaz de descobrir relativamente rápido que eu tenho 1% de reserva. Neste caso (4,62-ish GB)

Reserved block count:     1211796

Quanto espaço livre atualmente disponível? Aqui mesmo!

Free blocks:              104090586
...

E o tamanho do bloco é importante. Útil para multiplicar.

Block size:               4096
...

Estas linhas dizem que os blocos são reservados para ... user 0, root, neste caso

Reserved blocks uid:      0 (user root)
Reserved blocks gid:      0 (group root)
...

Há muitas outras informações disponíveis aqui, mas isso deve permitir que você verifique rapidamente quanto está disponível e quanto mais está reservado para o root. Matemática simples.

Espero que isso ajude. Lembre-se ... man pages são seus amigos.

    
por 06.07.2012 / 09:44
1

Isso exibe o espaço livre em bytes na partição relacionada a "/ path"

printf '%s' $(($(stat -f --format='%f*%S' /path)))

Você não precisa ser superusuário para executá-lo.

BTW eu não entendo muito bem qual é a diferença entre

% s tamanho do bloco (para transferências mais rápidas)

% S tamanho de bloco fundamental (para contagem de blocos)

no uso de stat .

    
por 24.04.2017 / 19:37