Praktische Anwendungen von Linux-Pipelines
In diesem letzten Schritt werden Sie einige praktische Anwendungen von Linux-Pipelines erkunden, indem Sie Protokolldateien analysieren, Datenfiles verarbeiten und gängige Systemadministrationstasks lösen.
Analyse von Protokolldateien
Systemadministratoren müssen oft nützliche Informationen aus Protokolldateien extrahieren. Erstellen wir eine Beispiel-Protokolldatei und verwenden Pipelines, um sie zu analysieren:
cd ~/project
cat > server_log.txt << EOF
[2023-05-10 08:45:22] INFO: Server started
[2023-05-10 09:12:35] ERROR: Database connection failed
[2023-05-10 09:14:01] INFO: Retrying database connection
[2023-05-10 09:14:10] INFO: Database connection established
[2023-05-10 09:30:45] WARNING: High CPU usage detected
[2023-05-10 10:15:30] ERROR: API request timeout
[2023-05-10 10:20:15] INFO: System update available
[2023-05-10 11:05:22] WARNING: Low disk space
[2023-05-10 11:45:18] ERROR: Memory allocation failed
EOF
Jetzt führen wir einige nützliche Protokollanalysen durch:
- Zählen der Vorkommen jedes Protokollebene (INFO, WARNING, ERROR):
cat server_log.txt | grep -o "INFO\|WARNING\|ERROR" | sort | uniq -c
Ausgabe:
4 INFO
3 ERROR
2 WARNING
- Extrahieren aller Zeitstempel und Protokollebene:
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
Verarbeitung von CSV-Daten
Die Verarbeitung von CSV (Comma-Separated Values, Komma-separierte Werte)-Dateien ist eine weitere gängige Aufgabe. Erstellen wir eine Beispiel-CSV-Datei mit Verkaufsdaten:
cat > sales.csv << EOF
Date,Product,Units,Price
2023-01-15,Laptop,10,1200
2023-01-16,Mouse,30,25
2023-01-16,Keyboard,20,45
2023-01-17,Monitor,15,200
2023-01-18,Laptop,5,1200
2023-01-18,Printer,8,300
2023-01-19,Mouse,25,25
EOF
Jetzt verwenden wir Pipelines, um diese Verkaufsdaten zu analysieren:
- Extrahieren und Zählen der einzigartigen verkauften Produkte:
cat sales.csv | tail -n +2 | cut -d',' -f2 | sort | uniq -c
Der Befehl tail -n +2
überspringt die Kopfzeile der CSV-Datei.
Ausgabe:
2 Keyboard
2 Laptop
2 Monitor
2 Mouse
1 Printer
- Berechnen der Gesamtanzahl der verkauften Einheiten:
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 bc
-Rechner, um die Summe zu berechnen.
Systemüberwachungstasks
Linux-Pipelines sind auch nützlich für Systemüberwachungs- und -administrationstasks:
- Auflisten der 5 Prozesse, die am meisten Arbeitsspeicher verbrauchen:
ps aux | sort -k 4 -r | head -6
Dieser Befehl listet die Prozesse sortiert nach der vierten Spalte (Arbeitsspeichernutzung) in umgekehrter Reihenfolge auf und zeigt die obersten 6 Zeilen (einschließlich der Kopfzeile).
- Finden aller Dateien größer als 1 MB im aktuellen Verzeichnis:
find . -type f -size +1M -exec ls -lh {} \; | sort -k 5 -h
Dieser Befehl sucht nach Dateien größer als 1 MB, führt ls -lh
für jede Datei aus und sortiert die Ausgabe nach Dateigröße.
Diese Beispiele zeigen, wie Linux-Pipelines effizient eingesetzt werden können, um reale Probleme zu lösen. Indem Sie einfache Befehle kombinieren, können Sie leistungsstarke Datenverarbeitungsworkflows erstellen, ohne komplexe Skripte oder Programme schreiben zu müssen.