GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Konvertieren von statvfs in Prozent kostenlos korrekt

Bei Ihrer Bearbeitung Nr. 2 muss die Usage%-Berechnung so aktualisiert werden, dass sie mit der df-Ausgabe übereinstimmt:

100.0 * (double) (vfs.f_blocks - vfs.f_bfree) / (double) (vfs.f_blocks - vfs.f_bfree + vfs.f_bavail)

Argumentation:
Verwendet =f_blocks - f_bfree
Verfügbarkeit =f_bavail
df % =Benutzt / (Benutzt + Verfügbar)


df Die Daten von können auf f_bavail basieren , nicht f_bfree . Möglicherweise finden Sie es hilfreich, sich den Quellcode von df anzusehen, um zu sehen, wie es funktioniert. Es muss mit einer Reihe von Randfällen fertig werden (zB wenn der belegte Platz den Platz übersteigt, der Nicht-Root-Benutzern zur Verfügung steht), aber der relevante Code für den Normalfall ist hier:

  uintmax_t u100 = used * 100;
  uintmax_t nonroot_total = used + available;
  pct = u100 / nonroot_total + (u100 % nonroot_total != 0);

Mit anderen Worten, 100 * used / (used + available) , aufgerundet. Das Einfügen der Werte aus Ihrer df-Ausgabe ergibt 100 * 14159676 / (14159676 + 25837672) = 35.4015371 , was aufgerundet 36 % ergibt, ebenso wie df berechnet.


Linux
  1. Konvertieren Ihres Python 2-Codes in Python 3

  2. Was ist mit dem freien Speicherplatz passiert?

  3. Finden Sie die Größe und den freien Speicherplatz des Dateisystems, das eine bestimmte Datei enthält

  4. Konvertieren eines Maildir in ein PST

  5. Warum wird immer noch Unix verwendet, wenn Linux darauf basiert und Linux kostenlos ist?

25 kostenlose Bücher, um Linux kostenlos zu lernen

Bildschirmbefehl unter Linux erklärt

90 Linux-Befehle, die häufig von Linux-Systemadministratoren verwendet werden

SystemD - Wofür wird SystemD verwendet?

kostenlose Befehlsbeispiele in Linux

Wie zeige ich verwendete Geräte/freien Speicherplatz bei Verwendung von LVM an?