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
apenas exibe 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 para fazer root?
fonte
tune2fs -l /dev/DEVICE | egrep "Block count|Reserved block count"
. Por exemplo, para minha partição "buffer multimídia":Block count: 2621440
eReserved block count: 128449
: 4,9% dos blocos disponíveis (configuração conservadora para ajudar a evitar a fragmentação).cut
comando: você pode escolher os camposawk
diretamente. De fato, ocut
comando não funcionou para mim como esperado. De qualquer forma, dei outra resposta que deveria dar uma resposta mais precisa.tune2fs -m <percentage> <device-name>
para alterar o espaço em disco reservado apenas para uso raiz.sudo tune2fs -l $(df | grep -E '/$' | cut -d\ -f 1) | egrep "Reserved block count|Block size" | paste -sd\ | awk '{print ($4 * $7 / ( 1024 * 1024 ) ), "MB"}'
tune2fs /dev/sda1
ou melhor aindastat -f -c '%a blocks free and %f blocks free for root (%S bytes per block)' /
Usando o comando tune2fs (encontrado em / sbin / tune2fs ), você pode determinar facilmente o espaço reservado : (e mais!)
Fornecerei as informações do meu sistema para referência. Vou remover linhas estranhas que não são importantes para esta pergunta:
O cabeçalho ... e o nome do volume, rotulo todas as minhas unidades, facilitam a identificação, se necessário.
REALMENTE deseja que isso seja "limpo" enquanto o sistema estiver em execução. Honesto!
É aqui que as informações da capacidade de armazenamento de dados começam:
Aqui você pode ver que tenho 121.179.648 blocos no total ... com um tamanho de bloco de 4K (4096), que se multiplica para um número grande (462-ish GB). (O tamanho do bloco é indicado abaixo)
E os blocos reservados ... olhando para o número acima e o número abaixo ... você deve ser capaz de descobrir relativamente rápido que tenho 1% reservado. Nesse caso (4,62-ish GB)
Quanto espaço livre está disponível atualmente? Bem aqui!
E o tamanho do bloco, o mais importante. Útil para multiplicar.
Essas linhas dizem QUEM os blocos são reservados para ... usuário 0, raiz, neste caso
Há muito mais informações disponíveis aqui, mas isso deve permitir que você verifique rapidamente quanto está disponível e quanto mais está reservado para a raiz. Matemática simples.
Espero que isto ajude. Lembre-se ... as páginas de manual são seus amigos.
fonte
Isso exibe espaço livre em bytes na partição relacionada a "/ path"
Você não precisa ser superusuário para executá-lo.
BTW eu não entendo bem qual é a diferença entre
% s tamanho do bloco (para transferências mais rápidas)
% S tamanho do bloco fundamental (para contagem de blocos)
em uso de
stat
.fonte
bc
para obter a contagem de bytes ou até mesmo--format='%f*%S/1024/1024/1024' | bc
obter kilobytes / megabytes / gigabytes, dependendo de quantas divisões você escolher.$(( ... ))
faz o cálculo, mas resulta apenas na parte inteira do quociente (se você adicionar divisão). Ou você quer dizer que seu shell não suporta expansão aritmética?bc
, poderá obter o quociente com precisão arbitrária, se precisar.