o que é 1K-blocos em df e como calcular o uso de porcentagem?

3

Eu pesquisei muitos e não achei 1K-blocks significando no comando df (gnu), mas eu calculei e acho que é igual a 1K Byte ? Existe uma explicação oficial?

Então, como calcular o Used Percentage ?

Por exemplo:

tankywoo@gentoo-jl::~/ » df -h
Filesystem                   Size  Used Avail Use% Mounted on
/dev/sda3                     15G  5.9G  8.2G  42% /

tankywoo@gentoo-jl::~/ » df
Filesystem                  1K-blocks    Used Available Use% Mounted on
/dev/sda3                    15481840 6163320   8532088  42% /

Na minha máquina local, sei que há reserved space .

usado é 6163320, o avail é 8532088, portanto:

Acho que Used% deve ser (15481840-8532088) / 15481740 = 44,88%, e não 42%.

Então, como obter o resultado 42% ?

    
por Tanky Woo 27.01.2014 / 16:05

1 resposta

2

O bloco 1K no GNU coreutils df (1) significa 1024 bytes. Confirmado dando uma olhada rápida no GNU coreutils, versão 8.13, código-fonte:

964   if (human_output_opts == -1)
965     {
966       if (posix_format)   
967         {
968           human_output_opts = 0;
969           output_block_size = (getenv ("POSIXLY_CORRECT") ? 512 : 1024);
970         }
971       else             
972         human_options (getenv ("DF_BLOCK_SIZE"),
973                        &human_output_opts, &output_block_size);
974     }

Como você pode ver, o tamanho padrão do bloco de saída é 1024, a menos que a variável de ambiente POSIXLY_CORRECT esteja definida.

Ao calcular a porcentagem usada, o df (1) subtrai espaço / blocos reservados para o usuário root do espaço disponível, quando o sistema de arquivos subjacente suporta espaço / blocos reservados (a maioria faz):

529   if (known_value (total) && known_value (available_to_root))
530     {
531       used = total - available_to_root;
532       negate_used = (total < available_to_root);
533     }

Para resumir, a autoridade oficial neste e em todos os casos é o código-fonte.

    
por 27.01.2014 / 16:30

Tags