root@SERVER ~$ df
Filesystem 512-blocks Free %Used Iused %Iused Mounted on
/dev/YXCV 655360 365632 45% 6322 13% /
/dev/ASDF 3801088 670648 83% 41759 32% /usr
/dev/ASR 1048576 500496 53% 5555 9% /var
Wie kann ich die df
Ausgabe des Befehls so weiterleiten, dass nur Zeilen angezeigt werden, die mehr als 80% nutzen?
zB: es würde nur anzeigen:
/dev/ASDF 3801088 670648 83% 41759 32% /usr
quelle
df -P | awk '$5 >= 80 {print}'
funktioniert für mich: können Sie einen Hinweis über den Nutzen der Verwendung dersubstr
hinzufügen? Vielen Dank.%
explizit zu entfernen .'$5 >= 80
funktioniert, dh. Es ignoriert das Trailing%
,<
>
==
funktioniert aber nicht auf die gleiche Weise ... während die (vorherige Bearbeitung) Subtring-Version für die meisten Vergleichssituationen zu funktionieren scheint , aber es schlägt auch fehl, wenn es mit< 100
... verglichen wird. Ich denke, das liegt daran, dass es so ist eine Unter Vergleich Zeichenfolge ..+
Operator).Nicht so elegant, funktioniert aber. Bitte ersetzen Sie ext4 durch Ihr eigenes fs (oder durch grep und bei vielen). Ersetzen Sie auch 10 durch Ihren eigenen Schwellenwert.
quelle
Ich stimme ddeimeke zu, aber diese Lösung funktioniert nur für 80 bis 89% und zeigt zum Beispiel nicht 93%.
Um dies zu tun (zum Beispiel> 70%):
quelle
egrep "([789][0-9]|100)%"
?wird den Trick machen.
quelle
df
Ausgabe anders ist ... Aha! Ich habe gerade überprüft: Meine Standardausgabe zeigt nurFilesystem 1K-blocks Used Available Use% Mounted on
... also hängt es nur davon ab, was Ihre Ausgabe ist (wie in Gilles Antwort erwähnt). Wenn es eine zweite%
Spalte gibt (wie in der Frage), sollte ein Trailing.*%
funktionieren:df | egrep "([89][0-9]|100)%.*%"
.. Jetzt verstehe ich, warum jemand