Ich weiß, dass df -hl
eine Liste aller meiner Partitionen mit Größe, Auslastung in Prozent und verfügbarem Speicherplatz ausgegeben wird.
Wenn ich nur die Größe und die Auslastung als Prozentsatz von ausgeben wollte sda2
und sda3
zum Beispiel, wie könnte ich Linux (Ubuntu) anweisen, sie zu überprüfen, zu summieren und mir zu zeigen?
ubuntu
command-line
user32398
quelle
quelle
Antworten:
Für
df
zu berechnen Summen, verwenden Sie die--totals
Option. Wenn Sie die Gesamtsummen nur für einige ausgewählte Laufwerke verwenden möchten, geben Sie sie als Argumente an.Beispiele (und Ausgabe von meinem Computer)
Dies ist die Summe für alle lokalen Reittiere:
Beschränkung auf wenige Laufwerke (Beachten Sie, dass der nächstgelegene Einhängepunkt verwendet wird, wenn der angegebene Pfad kein genauer Einhängepunkt ist [siehe Hinweis am Ende] ):
oder mit
dev
Namen:Weitere Anpassung
Wenn Sie alle Bereitstellungen mit Ausnahme der speziellen Bereitstellungen auflisten möchten, können Sie sie mithilfe der
-x
Option nach Partitionstyp ausschließen. (Verwenden Sie die-T
Option, um die Typen anzuzeigen.)Persönlich verwende ich für die interaktive Verwendung den folgenden Bash-Alias (hinzugefügt
~/.bash_aliases
), um die "nicht-physischen" Reittiere auszuschließen.Hinweis
Das Angeben von Pfaden innerhalb von Einhängepunkten kann manchmal zu unterschiedlichen Ergebnissen führen, wenn der genaue Pfad zum Einhängepunkt angegeben wird. Zum Beispiel verwende ich auf meinem Laptop
sshfs
, um meinen (lokalen) Dateiserver einzuhängen.Der Server root (
/
) ist unter gemountet~/.server-root
. Auf dem Server sind jedoch Datenträger gemountet/disks/*
, von denendf
(auf dem Laptop) nichts bekannt ist.Offensichtlich
df
kann die Datenträgerverwendung auf den verschiedenen Bereitstellungen auf dem Server aufgeführt werden, wenn die richtigen Pfade angegeben werden. Es wird jedoch für alle Pfade dasselbe „Dateisystem“ und „Mounted on“ angezeigt, da (glaube ich) dies der einzige Mount-Punkt (in Bezug auf diesensshfs
Mount) in der lokalen Kernel-Mount-Tabelle ist.Eine andere Sache: Nicht wirklich mit der Frage verbunden, sondern mit einer vorherigen Antwort auf die Frage.
Das Aufsummieren der Zahlen mit einem
awk
Skript (oder ähnlichem), wie es einige zuvor veröffentlichte Antworten tun, ist keine gute Idee, wenn Sie die-h
Flagge verwenden. Dies liegt daran, dass eine besondere Behandlung erforderlich ist. Sie können nicht nursize+=$2;
für ein Feld418M
in einer Reihe und12G
in einer anderen Reihe etwas Nützliches daraus machen ...Für ein Beispiel mit
awk
Hinzufügen500M
zu10.2G
Ausbeuten510,2 von was?
Hier liegt eindeutig ein Problem vor. Dies ist nur ein Tipp, den Sie sich merken sollten , wenn Sie (automatisierte) Berechnungen für die Ausgabe von
df
(und anderen, die 'vom Menschen lesbare' Zahlen verwenden können) durchführen . Stellen Sie sicher, dass Sie das Flag nicht verwenden-h
und die Eingabe in das Berechnungsskript stattdessen normalisiert ist (z. B. auf Bytes, Blöcke, KBs oder was auch immer), und führen Sie am Ende die "Anzeigeskalierung" durch . In den meisten Skript- und Programmiersprachen ist es nicht schwer, Folgendes hinzuzufügen:in den Wert in Bytes ist und Schwelle ein Wert in der Größenordnung von 1000. Das Ergebnis dieser Methode ist , ist , dass man ganz einfach einstellen kann ihn gedruckt Werte erzeugen (ohne Vorzeichen) in einem gewünschten Bereich und mit einer Anzahl von signifikanten Ziffern auf Ihre wählen. Im Vergleich zu Standarddienstprogrammen mit
-h
Switches, bei denen das Format häufig festgelegt ist.Natürlich kann diese Berechnung oft effizienter und / oder eleganter gestaltet werden, aber das ist eine Frage für die spezifische Sprache, in der sie geschrieben ist. Ehrlich gesagt, wenn sie in einem Benutzerskript verwendet wird, das nur ab und zu zum interaktiven Anzeigen ausgeführt wird Einige Informationen, Effizienz ist nicht wirklich ein Anliegen.
quelle
Ich denke, Sie wollten die Summe von beidem
size
unduse%
quelle
size+=$1
) mit einem simplen awk-Ansatz beantworten sollte. Diese Methode ist wirklich nicht kompatibel mit der-h
Option vondf
.Sie würden ein Tool verwenden wie
awk
:Wo:
/^\/dev\/sd[ab]/
ist ein Muster zum Filtern nur der Zeilen, die mit/dev/sda
oder beginnen/dev/sdb
{ sum+=$5 }
Fügen Sie das fünfte Feld für Übereinstimmungen mit dem obigen Muster hinzuEinige hilfreiche
awk
Referenzen finden Sie im Awk.info-Wiki .quelle
quelle
size
,% used
undavailable
. Nicht nur% verwendet. @Mdpc hat auch eine bessere Methode zum Herausgreifen des Laufwerks, aber wenn Sie einedf -hl | awk '/sda2/{print $2,$5,$4}'
Wenn Sie es mit Warnungen wollten, mache ich es mit IFTTT, Telegramm und WebHooks (was alles kostenlos ist)
quelle