Automatisierung mit der Bash-Shell (1)

Lesezeit
2 Minuten
Bis jetzt gelesen

Automatisierung mit der Bash-Shell (1)

07.08.2023 - 07:11
Veröffentlicht in:

Unter Linux und in der Unix-Welt erledigen Admins ihre Aufgaben bevorzugt mit der Bash-Shell, mit der sich über Skripte die Systemverwaltung auch automatisieren lässt. Dieser Workshop zeigt Tipps und Tricks rund um Bash-Skripte, die dabei helfen, beispielsweise Logdaten auszuwerten, dem Endanwender eine GUI für notwendige Interaktionen zu präsentieren oder Daten mit Python-Skripten auszutauschen. Im ersten Teil des Workshops schauen wir uns an, wie Sie mit Skripten Logdaten automatisch verarbeiten und die Ausgabe von Tonsignalen steuern.

Die Bash-Shell ist konzeptuell in der Unix-Welt beheimatet. Eine ihrer wichtigsten Philosophien ist der Fokus auf kleine Applikationen, die komplizierte Aufgaben gemeinsam erledigen. Anders als bei Python fallen die Kommandozeilenwerkzeuge hier deshalb im Allgemeinen kompakt aus. Aus diesem Grund finden sich für Administrationsaufgaben zahlreiche eher kleine Tools, die wir im Folgenden betrachten. Die Grundlagen der Bash, ihre Syntax und Beispiele liefern etwa Webseiten wie linuxconfig.org und tutorialspoint.com.

Logdaten automatisch verarbeiten
Linux-Systeme protokollieren permanent Informationen über den Systemzustand. Diese dienen zum Beispiel als Datenquelle für das dmesg-Werkzeug. Es kommt unter anderem zur Lokalisierung von mit der Workstation verbundenen Prozessrechnern zum Einsatz. Das Einfügen von Logdaten ins Betriebssystem ist unter Unix jedoch ein komplizierter Prozess, da die dahinterstehende Infrastruktur parallelisiert ist und teilweise per TCP/IP kommuniziert.

Die dmesg- und grep-Befehle erleichtern die Lokalisierung der angeschlossenen Hardware.
Bild 1: Die dmesg- und grep-Befehle erleichtern die Lokalisierung der angeschlossenen Hardware.
 

Hier hilft das Werkzeug Logger, das Informationen an das Syslog weiterleitet. Ein Aufruf zum Absetzen einer Statusmeldung sieht so aus:

logger -t ITA "Meldung an den Logger"

tail -2 /var/log/syslog

Neben dem für das Absetzen der Daten verantwortlichen Aufruf nutzen wir den tail-Befehl, um die letzten zwei Zeilen des Systemlogs auf den Bildschirm zu bringen. Bild 2 zeigt die Ergebnisse der Programmausführung. Dabei liefert die Option "-t" einen als Tag bezeichneten Zusatzwert, der dann analog zum in Android enthaltenen Protokollwerkzeug "LogCat" an den Beginn der Statusmeldung wandert.

Die per logger-Kommando abgesetzten Meldungen erscheinen im Systemlog.
Bild 2: Die per logger-Kommando abgesetzten Meldungen erscheinen im Systemlog.
 

Tags sind hilfreich, weil sich Logdaten dann per grep-Kommando auf die vom Programm gesendeten Meldungen beschränken lassen. Wirklich erforderlich ist der Parameter allerdings nicht. Ein nach folgendem Schema erfolgender Aufruf ist genauso wirksam:

logger "Meldung an den Logger"

Übergeben Sie keinen Tag, gibt logger den Benutzernamen des gerade angemeldeten Users aus.

Ausgabe von Tonsignalen
Shell-Skripte arbeiten im Allgemeinen unscheinbar. Bei praktischen Aufgaben wünscht sich der Admin mitunter eine hörbare Statusmeldung, die zum Beispiel auf Fehler hinweist. Diese auf den ersten Blick seltsam klingende Vorgehensweise erweist sich in der Praxis manchmal als sehr hilfreich: So provisionierten die IT-Verantwortlichen in einem Projekt Prozessrechner mit einem Skript und diejenigen, deren Selbsttest scheiterte, zeigten diesen Zustand durch mehrfaches Piepen an. Der Provisionierungsprozess erfolgte so ohne angeschlossenen Monitor, was den Platzbedarf reduzierte.

Das ASCII-Sonderzeichen "BEL" animiert ein zur Anzeige verwendetes Terminal zum Einschalten seiner "Glocke". Allerdings verfügen heutige Rechner mit Sicherheit nicht mehr über eine Glocke und der Umweg auf den PC-Speaker steht nicht auf allen Systemen zur Verfügung. Sofern also Ihre Systemkonfiguration das Zeichen auswertet, führt folgender Code zur Ausgabe eines Pieptons:

/bin/bash

tput bel

Dabei ist "tput" ein auf die Ausgabe von Sonderzeichen spezialisiertes Programm. Durch Übergeben des Strings "bel" sorgen wir dafür, dass das Glockenzeichen in die Standardausgabe wandert.

Ein Test mit Ubuntu 20.04 LTS ergab die Wiedergabe eines leisen Blubberns. Wichtig ist, dass das mehrfache Ausgeben von "bel" hintereinander nicht dazu führt, dass die Glocke mehrfach ertönt. Möchten Sie aufeinanderfolgende Glockentöne realisieren, müssen sie zwischen den Aufrufen Delays platzieren.

Ein alternativer Weg ist die Wiedergabe fertiger Wave-Dateien. Canonical stattet Ubuntu-Installationen von Haus aus mit einer Gruppe von Sounddateien aus, die im Unterverzeichnis "/usr/share/sounds/ ubuntu/stereo" bereitstehen. Zur Wiedergabe der Töne nutzen wir das paplay-Tool:

/usr/share/sounds/ubuntu/stereo$ paplay message.ogg

So bewerkstelligen Sie die Tonwiedergabe über den pulseaudio-Dienst. Die Unterstützung komprimierter Formate ist von System zu System unterschiedlich. Für die Verarbeitung von MP3-Dateien ist meist das Herunterladen eines zusätzlichen Softwarepakets erforderlich.

jp/ln/Tam Hanna

Im zweiten Teil der Workshopserie gehen wir im Detail darauf ein, wie Sie Daten mit Python-Skripten austauschen.

Ähnliche Beiträge

Automatisierung mit der Bash-Shell (3)

Unter Linux und in der Unix-Welt erledigen Admins ihre Aufgaben bevorzugt mit der Bash-Shell, mit der sich über Skripte die Systemverwaltung auch automatisieren lässt. Dieser Workshop zeigt Tipps und Tricks rund um Bash-Skripte. Im dritten Teil werfen wir einen Blick darauf, wie Sie eine grafische Oberfläche für Endanwender erzeugen und mit Triggern automatische Ausführungen anstoßen.

Automatisierung mit der Bash-Shell (2)

Unter Linux und in der Unix-Welt erledigen Admins ihre Aufgaben bevorzugt mit der Bash-Shell, mit der sich über Skripte die Systemverwaltung auch automatisieren lässt. Dieser Workshop zeigt Tipps und Tricks rund um Bash-Skripte, die dabei helfen, beispielsweise Logdaten auszuwerten – oder Daten mit Python-Skripten auszutauschen, was wir im zweiten Teil des Workshops im Detail beschreiben.

Effiziente Automatisierung in der Telko-Branche

Die Nachfrage nach Hochgeschwindigkeits-Anbindung über das Handynetz steigt unaufhörlich und neben dem Home Office werden alternative Arbeitsmodelle wie Workation immer populärer. Dieser gesteigerte Bedarf an Konnektivität eröffnet ungeahnte Potenziale für Telekommunikationsunternehmen – vor allem dank intelligenter Automatisierungstechnologien. Welche Rolle dabei unter anderem ITSM 3.0 spielt, lesen Sie im Fachartikel.