Linux du-Befehl: Schätzung des Speicherplatzbedarfs

LinuxBeginner
Jetzt üben

Einführung

In diesem Lab werden wir den Befehl du (disk usage) unter Linux untersuchen, ein leistungsstarkes Werkzeug zur Schätzung und Analyse des belegten Festplattenplatzes. Stellen Sie sich vor, Sie sind ein Systemadministrator, der einen schnell wachsenden Dateiserver verwalten muss. Ihre Aufgabe ist es, speicherintensive Verzeichnisse und Dateien zu identifizieren, um die Speichernutzung zu optimieren. Der du-Befehl wird dabei Ihr zuverlässiges Detektivwerkzeug bei dieser Untersuchung des Speicherplatzes sein.

Die Grundlagen von du verstehen

Der Befehl du ist Ihre erste Verteidigungslinie, um die Festplattenbelegung zu verstehen. Beginnen wir damit, seine grundlegende Funktionsweise zu untersuchen.

Navigieren wir zunächst in das Projektverzeichnis, in dem wir unsere Untersuchung durchführen werden:

cd ~/project

Führen wir nun einen einfachen du-Befehl aus:

du

Tipps: Dateien und Ordner werden zufällig erstellt, und auch ihre Größen sind zufällig, daher können die Ergebnisse bei jeder Ausführung variieren.

Sie werden eine Ausgabe ähnlich dieser sehen:

0       ./documents/reports
0       ./documents
10240   ./backups
0       ./logs/archive
0       ./logs/system
5120    ./logs/application
5120    ./logs
15360   .

Jede Zeile zeigt zwei Informationen:

  1. Die Festplattenbelegung (in KB)
  2. Den entsprechenden Verzeichnispfad

Die Zahlen mögen anfangs kryptisch erscheinen. Sie repräsentieren die Speichernutzung in Kilobyte (KB). Aber keine Sorge, wir können sie lesbarer machen!

Führen wir den Befehl mit der Option -h (human-readable, menschenlesbar) aus:

du -h

Nun sehen Sie eine Ausgabe wie diese:

0       ./documents/reports
0       ./documents
10M     ./backups
0       ./logs/archive
0       ./logs/system
5.0M    ./logs/application
5.0M    ./logs
15M     .

Die Option -h konvertiert die Größen in ein benutzerfreundlicheres Format (K für Kilobyte, M für Megabyte usw.). Dies macht es für uns Menschen viel einfacher, die Daten auf einen Blick zu erfassen.

Einige Punkte zur Beachtung:

  • Der Punkt . am Ende repräsentiert das aktuelle Verzeichnis (in diesem Fall ~/project).
  • Die Festplattenbelegung eines Verzeichnisses schließt die Nutzung aller seiner Unterverzeichnisse ein.
  • Die Größen, die Sie sehen, können leicht abweichen, da das Setup-Skript zufällige Dateigrößen generiert.

Untersuchung spezifischer Verzeichnisse

Nachdem wir die Grundlagen verstanden haben, tauchen wir tiefer in spezifische Verzeichnisse ein. Wir konzentrieren uns auf das Verzeichnis logs, das anscheinend eine beträchtliche Menge an Platz beansprucht.

Wechseln wir zunächst in das Log-Verzeichnis:

cd ~/project/logs

Verwenden wir nun du, um dieses Verzeichnis zu untersuchen:

du -h

Möglicherweise sehen Sie eine Ausgabe wie diese:

0       ./archive
0       ./system
5.0M    ./application
5.0M    .

Dies gibt uns eine Aufschlüsselung der Festplattenbelegung für jedes Unterverzeichnis innerhalb des Log-Verzeichnisses. Aber was ist, wenn wir nur die Gesamtsumme für das Verzeichnis logs sehen wollen?

Wir können die Option --max-depth verwenden, um zu begrenzen, wie tief du in die Verzeichnisstruktur schaut:

du -h --max-depth=0

Dies gibt nur die Gesamtsumme für das aktuelle Verzeichnis aus:

5.0M    .

Die Angabe --max-depth=0 weist du an, nur das aktuelle Verzeichnis anzuzeigen, ohne in Unterverzeichnisse abzusteigen.

Um nur die unmittelbar untergeordneten Verzeichnisse zu sehen, verwenden Sie --max-depth=1:

du -h --max-depth=1

Ausgabe:

0       ./archive
0       ./system
5.0M    ./application
5.0M    .

Dies verschafft uns ein klareres Bild davon, welche Unterverzeichnisse den meisten Platz verbrauchen.

Die Option --max-depth ist besonders nützlich, wenn Sie mit tief verschachtelten Verzeichnisstrukturen arbeiten und sich auf eine bestimmte Ebene der Hierarchie konzentrieren möchten.

Sortieren und Analysieren der Festplattenbelegung

Da wir nun die Unterverzeichnisse identifiziert haben, die den meisten Platz beanspruchen, lernen wir, wie man die Ergebnisse sortiert. Dies hilft uns, die größten Speicherfresser schnell zu finden.

Wir werden den Befehl sort in Kombination mit du verwenden. Keine Sorge, falls Sie mit sort nicht vertraut sind – wir erklären die Funktionsweise.

Sortieren wir zunächst die Ausgabe von du nach Größe:

du -h | sort -h

Dieser Befehl bewirkt zwei Dinge:

  1. du -h: Führt den Befehl zur Festplattenbelegung mit menschenlesbarer Ausgabe aus.
  2. |: Dies ist eine Pipe. Sie nimmt die Ausgabe des Befehls links und leitet sie als Eingabe an den Befehl rechts weiter.
  3. sort -h: Sortiert die Eingabe numerisch basierend auf menschenlesbaren Größen.

Sie könnten eine Ausgabe wie diese sehen:

0       ./archive
0       ./system
5.0M    .
5.0M    ./application

Die Ausgabe ist vom kleinsten zum größten Wert sortiert. Oft interessieren uns jedoch die größten Verzeichnisse zuerst. Um die Reihenfolge umzukehren, können wir die Option -r (reverse) zu sort hinzufügen:

du -h | sort -hr

Ausgabe:

5.0M    ./application
5.0M    .
0       ./system
0       ./archive

Jetzt können wir in absteigender Reihenfolge deutlich sehen, welche Unterverzeichnisse im Log-Ordner den meisten Platz belegen.

Um uns nur auf die unmittelbaren Unterverzeichnisse zu konzentrieren und diese zu sortieren, können wir die gelernten Techniken kombinieren:

du -h --max-depth=1 | sort -hr

Dieser Befehl zeigt und sortiert nur die direkt untergeordneten Verzeichnisse des aktuellen Verzeichnisses.

Denken Sie daran: Die Stärke der Kommandozeile liegt in der Kombination einfacher Befehle, um komplexe Operationen durchzuführen. Wir haben gerade du, sort und verschiedene Optionen kombiniert, um die Festplattenbelegung schnell zu analysieren!

Die größten Dateien finden

Bisher haben wir uns Verzeichnisgrößen angesehen. Aber was ist, wenn wir die spezifischen Dateien finden wollen, die den meisten Platz einnehmen? Der Befehl du arbeitet primär mit Verzeichnissen, aber wir können ihn mit anderen Befehlen kombinieren, um große Dateien aufzuspüren.

Wir werden den Befehl find zusammen mit du verwenden. Keine Sorge, falls Sie find noch nicht kennen – wir erklären die Schritte.

Navigieren wir zuerst zurück in das Projektverzeichnis:

cd ~/project

Verwenden wir nun find und du, um die größten Dateien zu lokalisieren:

find . -type f -exec du -h {} + | sort -hr | head -n 5

Dieser Befehl mag komplex aussehen, aber lassen Sie ihn uns zerlegen:

  1. find . -type f: Findet alle Dateien (-type f) im aktuellen Verzeichnis (.) und seinen Unterverzeichnissen.
  2. -exec du -h {} +: Führt du -h für jede gefundene Datei aus. Das {} wird durch den Dateinamen ersetzt, und das + weist find an, so viele Dateinamen wie möglich an jeden Aufruf von du zu übergeben.
  3. sort -hr: Sortiert die Ergebnisse nach Größe in umgekehrter Reihenfolge (größte zuerst).
  4. head -n 5: Zeigt nur die obersten 5 Ergebnisse an.

Sie könnten eine Ausgabe wie diese sehen:

10M     ./backups/large_backup.bak
5.0M    ./logs/application/large_app_log.log
0       ./logs/system/placeholder.log
0       ./logs/archive/placeholder.log
0       ./logs/application/placeholder.log

Diese Ausgabe zeigt uns die fünf größten Dateien im Projektverzeichnis und deren Größen.

Um uns auf Dateien zu konzentrieren, die größer als eine bestimmte Größe sind, können wir unseren Befehl anpassen. Suchen wir nach Dateien, die größer als 1 MB sind:

find . -type f -size +1M -exec du -h {} + | sort -hr

Dieser Befehl fügt -size +1M hinzu, um nach Dateien zu filtern, die größer als 1 Megabyte sind.

Diese Befehle sind unglaublich nützlich, wenn Sie versuchen, Festplattenplatz freizugeben. Sie ermöglichen es Ihnen, schnell die größten Dateien zu identifizieren, die oft die besten Kandidaten zum Löschen oder Archivieren sind.

Erstellen eines Berichts zur Festplattenbelegung

Als letzten Schritt unserer Untersuchung erstellen wir einen umfassenden Bericht über die Festplattenbelegung für das gesamte Projektverzeichnis. Dieser Bericht hilft uns, unsere Ergebnisse zusammenzufassen und dem Team zu präsentieren.

Stellen wir zunächst sicher, dass wir uns im Projektverzeichnis befinden:

cd ~/project

Erstellen wir nun einen detaillierten Bericht mit du und speichern ihn in einer Datei:

du -h --max-depth=2 | sort -hr > disk_usage_report.txt

Lassen Sie uns diesen Befehl aufschlüsseln:

  1. du -h --max-depth=2: Zeigt die Festplattenbelegung bis zu zwei Ebenen tief in menschenlesbarem Format an.
  2. sort -hr: Sortiert die Ergebnisse nach Größe in umgekehrter Reihenfolge (größte zuerst).
  3. > disk_usage_report.txt: Speichert die Ausgabe in einer Datei namens disk_usage_report.txt. Das Zeichen > wird als Umleitungsoperator bezeichnet – es nimmt die Ausgabe, die normalerweise auf dem Bildschirm erscheinen würde, und "leitet" sie stattdessen in eine Datei um.

Nachdem wir unseren Bericht erstellt haben, schauen wir uns seinen Inhalt an:

cat disk_usage_report.txt

Sie sollten eine umfassende Liste von Verzeichnissen und deren Größen sehen, sortiert von groß nach klein.

Um eine Zusammenfassung der größten Verzeichnisse zu erhalten, können wir den Befehl head verwenden, um nur die obersten Einträge zu sehen:

head -n 10 disk_usage_report.txt

Dies zeigt Ihnen die 10 größten Verzeichnisse in Ihrem Projekt.

Dieser Bericht ist ein wertvolles Werkzeug, um zu identifizieren, welche Bereiche Ihres Projekts den meisten Speicherplatz verbrauchen. Er kann Ihnen dabei helfen, Bemühungen zur Optimierung der Speichernutzung zu steuern oder Diskussionen mit Ihrem Team über die Ressourcenallokation zu führen.

Zusammenfassung

In diesem Lab haben wir den leistungsstarken Befehl du und seine Anwendungen bei der Verwaltung von Festplattenplatz kennengelernt. Wir haben gelernt, wie man:

  1. Den grundlegenden du-Befehl verwendet, um die Festplattenbelegung zu schätzen.
  2. Die Ausgabe mit der Option -h menschenlesbar macht.
  3. Spezifische Verzeichnisse untersucht und die Tiefe mit --max-depth begrenzt.
  4. Ergebnisse der Festplattenbelegung sortiert und analysiert.
  5. Die größten Dateien in einem Verzeichnis findet.
  6. Umfassende Berichte zur Festplattenbelegung erstellt.

Diese Fähigkeiten sind für jeden Systemadministrator oder Power-User, der Speicherressourcen verwaltet, unerlässlich.

Zusätzliche du-Optionen, die in diesem Lab nicht behandelt wurden, sind:

  • -s: Zeigt nur eine Gesamtsumme für jedes Argument an.
  • -c: Erzeugt eine Gesamtsumme über alle Argumente hinweg.
  • -a: Zeigt die Festplattenbelegung sowohl für Dateien als auch für Verzeichnisse an.
  • --time: Zeigt den Zeitpunkt der letzten Änderung für jedes Verzeichnis an.
  • --exclude=MUSTER: Schließt Dateien oder Verzeichnisse aus, die dem MUSTER entsprechen.