Wie kann ich die gesamte verbleibende freie Speicherkapazität meines Systems auf mehreren Festplatten überprüfen?

Wie kann ich die gesamte verbleibende freie Speicherkapazität meines Systems auf mehreren Festplatten überprüfen?

An meinem Computer sind 15 SATA-Festplatten angeschlossen. Sie alle einzeln durchgehen zu müssen, den freien Speicherplatz aufzuschreiben und dann alles zusammenzurechnen, ist nicht optimal.

Gibt es einen Befehl oder eine Befehlskombination, mit der das möglich ist? Idealerweise könnte ich etwas wie Folgendes eingeben, /dev/sd*da ich die NVMe-Laufwerke nicht einschließen möchte.

Antwort1

EDIT: Ich sollte öfter Manpages lesen. Es ist so einfach wie

df --total -h /dev/sd*

Ok, ich habe etwas herausgefunden

df --output=avail  /dev/sd* | tail -n +2 | datamash sum 1

Dabei werden grundsätzlich die gemounteten Datenträger aufgelistet und als Ausgabe nur der verfügbare Speicherplatz angezeigt. Anschließend wird mit „tail“ die erste Zeile (der Spaltentitel) entfernt und Availdie Zahlen werden abschließend mit „datamash“ summiert.

Antwort2

Beachten Sie bei dem dfBefehl, dass Sie zum Ausschließen von virtuellen RAM-Disk-Einträgen wie den folgenden Parameter /devverwenden :-x

df -x tmpfs -x devtmpfs --total -h

Eine andere Möglichkeit hierfür ist der lsblkBefehl

  • -lAusgabe im Listenformat
  • -nÜberspringen der Kopfzeile
  • -bin Bytes drucken
  • -ogibt die angegebene(n) Spalte(n) aus
  • FSAVAILVerfügbare/freie Größe des Druckdateisystems
lsblk -l -n -b -o FSAVAIL | grep -v ^$ | \
awk '{sum+=$1} END{print sum}' | numfmt --to=iec

Verwenden Sie es grep, um leere Zeilen auszuschließen, awkdie erste Spalte zu summieren und schließlich numfmtBytes in ein „für Menschen lesbares“ Format zu konvertieren.

verwandte Informationen