2017-02-08 2 views
-1

Ich möchte mit der Befehlszeile den gesamten Speicherplatz auf einer Maschine als einen Wert abrufen. Auf den meisten Linux-Rechnern gibt "df --total" einen solchen Wert am Ende der regulären df-Ausgabe zurück.df - Gesamtbefehl für Mac?

Auf osx9, 10, 11 und 12 scheint es keine solche Option zu geben.

[u'df: illegal option -- -\n', u'usage: df [-b | -H | -h | -k | -m | -g | -P] [-ailn] [-T type] [-t] [filesystem ...]\n'] 

gleiche Problem mit älteren Linux-Betriebssystem, redhat5, centos5 usw.

Ein anderer Weg, um diesen Ansatz? Gibt es einen anderen Befehl, um bestimmte Werte zu isolieren? Ich suche hauptsächlich nach dem "total% used" -Wert.

Antwort

1

Sie müssen den Wert selbst berechnen, z. mit awk:

df | awk ' 
    BEGIN { SIZE=0; USED=0; AVAILABLE=0 } 
    // { print } 
    $3~/[0-9]/ { SIZE += $2; USED += $3; AVAILABLE += $4 } 
    END { printf "total\t%lu\t%lu\t%lu\t%d%%\n", SIZE, USED, AVAILABLE, (USED * 100/SIZE); }' 

brechen sie

  • Linie 1 von awk setzt die Variablen am Start,
  • Linie 2 druckt jede Zeile (Ich mache es explizit),
  • Linie 3 sagt, wenn ich eine Zahl in der dritten Spalte fügen sie es zu den Summen
  • Linie 4 sagt am Ende drucken sie eine ‚total‘ Linie (etwas ähnlich --total ‚s Linie)
  • finden