Reale Anwendungen von Linux-Pipelines
In diesem letzten Schritt werden Sie einige reale Anwendungen von Linux-Pipelines untersuchen, indem Sie Protokolldateien (log files) analysieren, Datendateien verarbeiten und gängige Aufgaben der Systemadministration lösen.
Analysieren von Protokolldateien
Systemadministratoren müssen oft nützliche Informationen aus Protokolldateien extrahieren. Verwenden wir Pipelines, um die Datei server_log.txt zu analysieren:
- Zählen der Vorkommnisse jeder Protokollebene (log level) (INFO, WARNING, ERROR):
cd ~/project
cat server_log.txt | grep -o "INFO\|WARNING\|ERROR" | sort | uniq -c
Ausgabe:
4 INFO
3 ERROR
2 WARNING
- Extrahieren aller Zeitstempel (timestamps) und Protokollebenen:
cat server_log.txt | grep -o "\[[0-9-]* [0-9:]*\] [A-Z]*" | head -5
Ausgabe:
[2023-05-10 08:45:22] INFO
[2023-05-10 09:12:35] ERROR
[2023-05-10 09:14:01] INFO
[2023-05-10 09:14:10] INFO
[2023-05-10 09:30:45] WARNING
Verarbeiten von CSV-Daten
Verwenden wir Pipelines, um die Datei sales.csv zu analysieren:
- Extrahieren und Zählen eindeutiger (unique) verkaufter Produkte:
cat sales.csv | tail -n +2 | cut -d',' -f2 | sort | uniq -c
Der Befehl tail -n +2
überspringt die Kopfzeile (header line) der CSV-Datei.
Ausgabe:
2 Keyboard
2 Laptop
2 Monitor
2 Mouse
1 Printer
- Berechnen der Gesamtzahl der verkauften Einheiten (units):
cat sales.csv | tail -n +2 | cut -d',' -f3 | paste -sd+ | bc
Ausgabe:
113
Diese Pipeline extrahiert die dritte Spalte (Einheiten), kombiniert alle Werte mit "+"-Zeichen und verwendet dann den Rechner bc
, um die Summe zu berechnen.
Systemüberwachungsaufgaben (System Monitoring Tasks)
Linux-Pipelines sind auch nützlich für Systemüberwachungs- und Administrationsaufgaben:
- Auflisten der Top 5 Prozesse, die den meisten Speicher verbrauchen:
ps aux | sort -k 4 -r | head -6
Dieser Befehl listet Prozesse auf, sortiert nach der 4. Spalte (Speicherverbrauch) in umgekehrter Reihenfolge und zeigt die obersten 6 Zeilen (einschließlich der Kopfzeile).
- Finden aller Dateien, die größer als 10 MB sind, und Sortieren nach Größe:
cd ..
find . -type f -size +10M -exec ls -lh {} \; | sort -k 5 -h
Dieser Befehl zeigt unsere großen Testdateien sortiert nach Größe an. Die Ausgabe sollte ähnlich aussehen wie:
-rw-r--r-- 1 labex labex 12M May 10 12:00 ./large_file3.dat
-rw-r--r-- 1 labex labex 15M May 10 12:00 ./large_file2.dat
-rw-r--r-- 1 labex labex 20M May 10 12:00 ./large_file1.dat
Dieses Beispiel demonstriert das Finden und Sortieren von Dateien nach Größe. Die Dateien wurden während der Einrichtung speziell erstellt, um zu zeigen, wie die Dateigrößenfilterung in Linux funktioniert.
Diese Beispiele zeigen, wie Linux-Pipelines verwendet werden können, um reale Probleme effizient zu lösen. Durch die Kombination einfacher Befehle können Sie leistungsstarke Datenverarbeitungs-Workflows erstellen, ohne komplexe Skripte oder Programme schreiben zu müssen.