CodeGym /Kurse /Docker SELF /Verarbeitung von Textdaten und Systemaktualisierung

Verarbeitung von Textdaten und Systemaktualisierung

Docker SELF
Level 8 , Lektion 6
Verfügbar

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:

  1. Sucht mit grep nach Zeilen mit Fehlern.
  2. Extrahiert nur die Information über den Fehlerursprung mit cut.
  3. Sortiert die Daten mit sort, damit uniq die 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

  1. 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 wget oder curl nicht 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.

1
Umfrage/Quiz
System-Werkzeuge in Linux, Level 8, Lektion 6
Nicht verfügbar
System-Werkzeuge in Linux
System-Werkzeuge in Linux
Kommentare
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION