Langzeitleser, erstmaliger Fragesteller:
Ich bin ein Linux-Administrator auf Junior-Ebene, der zunehmend sehr große Datenmengen / Speicher im lokalen und NFS-Speicher unterstützt. Die Daten liegen im Allgemeinen in Form von massiven Ordner- und Dateibäumen mit beliebigen Namen vor. Um ein Beispiel für die Herausforderung zu geben, arbeite ich mit Partitionen mit mehr als 20 TB, die Hunderttausende verschachtelter Verzeichnisse und Zehntausende Millionen Dateien enthalten.
Da es sich bei diesen Partitionen / Exporten um gemeinsam genutzte Ressourcen handelt, muss ich im Allgemeinen Detektiv spielen, wenn ihnen der Speicherplatz oder die Inodes ausgehen, um festzustellen, welche Ordner die größten Straftäter sind.
Ich stelle fest, dass 'du -s' viel zu langsam und manuell ist, um die Arbeit zu erledigen, und hoffte zu sehen, welche Tricks andere Leute verwenden, um die größten oder zahlreichsten Dateizahlverzeichnisse unter sehr großen Partitionen zu bestimmen.
Das einzige Betriebssystem, mit dem ich diese Suchvorgänge durchführen möchte, ist RHEL 5/6. Daher ist jede Mischung aus Standard-CLI-Linux-Tools in Ordnung.
Vielen Dank!
quelle
Ich gebe diese Empfehlung oft ab, um das Übliche
df -i
und diedu -skh
Lösungen zu erweitern ...Schauen Sie sich das Dienstprogramm ncdu an . Es ist ein auf ncurses basierendes grafisches Tool zur Festplattenauslastung. Sie erhalten eine ähnliche Ausgabe wie unten mit der Anzahl der Dateien und einer Zusammenfassung der Verzeichnisgrößen. Es ist für CentOS / RHEL verfügbar.
Siehe auch: /server/412651/console-utility-to-know-how-disk-space-is-distributed/412655#412655
quelle
Ich benutze diesen Befehl, um zu überprüfen, was die größten Dateien in einem Verzeichnis / auf dem System sind. Ich bin mir jedoch nicht sicher, ob dies in einer von Ihnen verwendeten Umgebung skalierbar ist:
find / -type f -size +100000k -exec ls -lh {} \; 2>/dev/null| awk '{ print $8 " : " $5}'
Wenn Sie möchten, können Sie die awk-Anweisung weglassen (ich verwende sie nur, um die Ausgabe zu bereinigen). Der Befehl find durchsucht Verzeichnisse nach Dateien, die größer als der angegebene Betrag k sind. Dann wird ls -lh für diese Datei ausgeführt, was ungefähr Folgendes ergibt:
Die AWK-Anweisung bereinigt die Ausgabe in Form von:
Das Nützlichste an diesem Befehl ist die Tatsache, dass Sie die Mindestgröße der Dateien angeben können. Wie bereits erwähnt, habe ich keine Ahnung, wie CPU / zeitintensiv dies für Ihre Umgebung ist.
quelle