1. Verarbeitung von Textdaten
Heute fassen wir alles Gelernte zusammen und wenden es in der Praxis an, um Textdaten zu verarbeiten und das System zu aktualisieren. Wir machen uns mit realen Anwendungsszenarien vertraut: von der Analyse von Systemprotokollen bis hin zur Automatisierung der Installation und Konfiguration von Paketen.
Aufgabe 1: Fehler im Protokoll finden
Szenario: Stell dir vor, du bist Systemadministrator und musst schnell verstehen, was im System passiert. Dafür analysieren wir die Systemprotokolle (/var/log/syslog).
Schritt 1: Nach Schlüsselwörtern filtern
Fangen wir damit an, Zeilen mit Fehlern zu finden, indem wir grep verwenden:
grep "error" /var/log/syslog
Oh, wir haben etwas gefunden! Aber lass uns das verbessern. Angenommen, du möchtest die Groß-/Kleinschreibung ignorieren (sei es ERROR oder error):
grep -i "error" /var/log/syslog
Jetzt sehen wir mehr Übereinstimmungen. Aber manchmal müssen wir alles finden, was nicht mit Fehlern zu tun hat:
grep -v "error" /var/log/syslog
Schritt 2: Ausgabe mit cut vereinfachen
Angenommen, dich interessieren nur der Zeitstempel und die Nachricht. Lass uns die entsprechenden Spalten extrahieren:
grep "error" /var/log/syslog | cut -d' ' -f1,2,3,5-
Hier verwenden wir cut, um die Zeilen nach Leerzeichen -d' ' zu teilen und die Spalten 1, 2, 3 (Zeit) und den restlichen Text auszuwählen.
Aufgabe 2: Häufigkeit von Ereignissen zählen
Jetzt wollen wir verstehen, wie oft Fehler auftreten. Wir kombinieren grep, cut und sort mit uniq:
grep "error" /var/log/syslog | cut -d' ' -f5 | sort | uniq -c
Dieser Befehl:
- Sucht mit
grepnach Zeilen mit Fehlern. - Extrahiert nur die Information über den Fehlerursprung mit
cut. - Sortiert die Daten mit
sort, damituniqdie Häufigkeit jeder Zeile zählen kann.
Das Ergebnis sieht so aus:
10 systemd
7 kernel
5 cron
Fehler von systemd treten am häufigsten auf. Zeit, Schlussfolgerungen zu ziehen!
2. Laden und Verarbeiten von externen Daten
Szenario: Analyse von Daten aus einer externen Quelle
Angenommen, wir müssen eine Textdatei mit Daten (zum Beispiel eine Log-Datei) von einem Webserver laden und analysieren. Das machen wir Schritt für Schritt.
Schritt 1: Datei herunterladen
Zuerst laden wir die Datei mit wget herunter:
wget -O data.log http://example.com/logs/data.log
Die Datei wird heruntergeladen und als data.log gespeichert. Falls ein Fehler beim Laden auftritt, fügen wir eine Fortsetzung hinzu:
wget -c -O data.log http://example.com/logs/data.log
Falls du curl bevorzugst:
curl -o data.log http://example.com/logs/data.log
Schritt 2: Informationen suchen
Jetzt suchen wir nach Zeilen, die ein bestimmtes Muster enthalten, z. B. WARNING:
grep "WARNING" data.log
Schritt 3: Datenformatierung mit awk
Angenommen, das Log enthält drei Spalten: Datum, Zeit und Nachricht. Wir möchten nur Datum und Nachricht ausgeben:
awk '{print $1, $3}' data.log
Und wenn du Zeilen filtern möchtest, bei denen die Nachricht das Wort error enthält, kannst du eine Bedingung hinzufügen:
awk '/error/ {print $1, $3}' data.log
3. Systemaktualisierung mit apt-get und yum
Kommen wir jetzt zu den eher "systemnahen" Aufgaben. Die Aktualisierung von Paketen ist ein lebenswichtiger Prozess, um die Sicherheit und Stabilität des Systems zu gewährleisten. Wir zeigen, wie das geht.
Szenario: Systemaktualisierung
Schritt 1: Aktualisierung der Paketliste
Für Debian-basierte Distributionen:
sudo apt-get update
Für RedHat-basierte Distributionen:
sudo yum check-update
Schritt 2: Installation von Updates
Debian-basiert:
sudo apt-get upgrade
RedHat-basiert:
sudo yum update
Schritt 3: Installation eines neuen Pakets
Zum Beispiel, um den Texteditor vim zu installieren:
sudo apt-get install vim
sudo yum install vim
Nützlicher Tipp
Wenn du genau weißt, welches Paket du installieren möchtest, dir aber nicht sicher bist, wie es heißt, benutze apt search oder yum search:
apt search paketname
yum search paketname
4. Abschließende Aufgabe
Aufgabe: Automatisierung der Aktualisierung und Datenverarbeitung
- Erstelle ein Bash-Skript, das:
- Das System aktualisiert;
- Eine Textdatei herunterlädt (z. B. Log-Datei);
- Diese Datei auf Fehler analysiert;
- Die Analyseergebnisse in einer neuen Datei speichert.
Hier ist ein Beispiel für ein solches Skript:
# Schritt 1: Systemaktualisierung
echo "System wird aktualisiert..."
sudo apt-get update && sudo apt-get -y upgrade
# Schritt 2: Datei herunterladen
echo "Log-Datei wird heruntergeladen..."
wget -O data.log http://example.com/logs/data.log
# Schritt 3: Datei analysieren
echo "Log-Datei wird auf Fehler analysiert..."
grep "ERROR" data.log | cut -d' ' -f1,5- | sort | uniq -c > analysis.log
echo "Analyse abgeschlossen. Ergebnisse wurden in analysis.log gespeichert"
Speichere dieses Skript z. B. als update_and_analyze.sh, setze Ausführungsrechte:
chmod +x update_and_analyze.sh
Und führe es aus:
./update_and_analyze.sh
Achtung: Typische Fehler
Falls du die Meldung "Zugriff verweigert" siehst, stelle sicher, dass du das Skript als Benutzer mit
sudo-Rechten ausführst.Falls
wgetodercurlnicht installiert sind, füge deren Installation am Anfang des Skripts hinzu:sudo apt-get install -y wget
Was bringt das praktisch?
Diese Skills brauchst du nicht nur bei der Arbeit, sondern auch bei Vorstellungsgesprächen. Die Fähigkeit, Fehler in Logs zu finden, Daten zu filtern und Systemaktualisierungen zu starten, wird von Administratoren und Ingenieuren geschätzt. Skripte ermöglichen es, Aufgaben zu automatisieren, Zeit zu sparen und menschliche Fehler zu vermeiden.
P.S. Denk dran, in der realen Welt wirst du Aufgaben haben, bei denen du Befehle kombinieren, die Ausgabe modifizieren und Systeme automatisch konfigurieren musst. Das heutige Beispiel ist nur die Spitze des Eisbergs deiner zukünftigen Praxis.
GO TO FULL VERSION