was sind 1K-Blöcke in df und wie berechnet man den Nutzungsprozentsatz?

was sind 1K-Blöcke in df und wie berechnet man den Nutzungsprozentsatz?

Ich habe viel gesucht und keine 1K-blocksBedeutung im df-Befehl (gnu) gefunden, aber ich habe es berechnet und denke, es entspricht 1K Byte? Gibt es eine offizielle Erklärung?

Wie berechnet man dann das Used Percentage?

Zum Beispiel:

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% /

Ich weiß, dass auf meinem lokalen Computer Folgendes vorhanden ist reserved space.

Gebraucht ist 6163320, verfügbar ist 8532088, also:

Ich denke, Used%es sollte (15481840-8532088)/15481740 = 44,88 % sein, nicht 42 %.

Wie erhält man also das Ergebnis 42%?

Antwort1

Der 1K-Block in GNU coreutils df(1) entspricht 1024 Bytes. Dies wird durch einen kurzen Blick auf den Quellcode von GNU coreutils, Version 8.13, bestätigt:

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     }

Wie Sie sehen, beträgt die Standardausgabeblockgröße 1024, sofern keine Umgebungsvariable POSIXLY_CORRECTfestgelegt ist.

Bei der Berechnung des genutzten Prozentsatzes subtrahiert df(1) den reservierten Speicherplatz bzw. die reservierten Blöcke für den Root-Benutzer vom verfügbaren Speicherplatz, wenn das zugrunde liegende Dateisystem reservierten Speicherplatz bzw. reservierte Blöcke unterstützt (was bei den meisten der Fall ist):

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     }

Zusammenfassend ist die offizielle Autorität in diesem und jedem Fall der Quellcode.

verwandte Informationen