Zum Inhalt springen

November 2017

Status Script für Prozesse und Dienste unter Linux

Status Script fuer Prozesse und Dienste unter Linux

Wenn man in der Linux Shell schnell, übersichtlich und einfach sehen möchte was für Services bzw. Prozesse (Apache, Postfix, MariaDB etc.) gerade laufen, geht das am einfachsten mithilfe eines kleinen Script. Dies sieht in meinem Fall wie folgt aus:

#!/bin/bash

# Liste der Services
SERVICES=("sshd" "apache2" "mysqld" "master" "irssi")

# Namen der Services
NAMES=("SSH Server" "Apache Webserver" "MariaDB Datenbankserver" "Postfix Mailserver" "irssi Twitch Bot")

aLen=${#SERVICES[@]}

# Kopfzeile ausgeben
echo ""
echo -e "\t--------------------------"
echo -e "\t| States of the services |"
echo -e "\t--------------------------"
echo ""

for (( i=0; i<${aLen}; i++)); do
   # Status prüfen und ausgeben
   if [ "$(pidof ${SERVICES[$i]})" ]; then
      STATE="\033[1;32m[Running]\033[0m"
   else
      STATE="\033[1;31m[Stopped]\033[0m"
fi
# Namen des Services hinter dem Status ausgeben
echo -e "\t$STATE ${NAMES[$i]}"
done
echo ""

Entweder erstellt Ihr eine neue Datei mit dem Namen “status.sh” und fügt das Script dort ein oder Ihr ladet euch die fertige Datei hier herunter.

Anpassungen an dem Script vorzunehmen ist ganz einfach. Der erstes Eintrag in der vierten Zeile “sshd” ist der Name des Prozesses. Der erste Eintrag der siebten Zeile “SSH Server” ist der Name der bei der Ausgabe angezeigt wird. Dieses Paar ergibt zusammen einen Status. Der jeweils zweite Eintrag den zweiten Status. Und so weiter.

Wenn Ihr mit den Anpassungen fertig seid, muss die Datei in euer Home-Verzeichnis hochgeladen und mit dem folgenden Befehl ausführbar gemacht werden.

chmod +x status.sh

Nun kann diese mit Hilfe von

./status.sh

ausgeführt werden. In der Ausgabe ist auf einen Blick zu erkennen ob alles planmäßig läuft. Schön, oder?

services status script

Aber sind wir hier fertig? Nein. Wir sind faul und wollen es einfach. Dies macht Ihr indem eurer “.bashrc” die folgende Zeile als Alias hinzugefügt wird.

alias status="/home/USER/status.sh"

Der Pfad zum Skript sowie euer Benutzername sollten selbstverständlich angepasst werden. Damit die Änderung übernommen wird, muss die Datei neu geladen werden.

source ~/.bashrc

Wenn alles geklappt hat, könnt ihr jederzeit “status” in der Shell eingeben und bekommt diese praktische Übersicht.

Jetzt sind wir aber fertig, oder? Fast! Wir sind schließlich nicht nur faul sondern lieben auch Automatisierung! Deshalb wollen wir das ganze direkt nach dem Login angezeigt bekommen. Dafür muss erneut die “.bashrc” bearbeitet und folgendes (mit angepasstem Pfad und Benutzernamen) eingefügt werden.

import="/home/USER/status.sh"
if [[ -f "$import" ]]; then
   source "$import"
else
   echo "Could not source ${import}. File does not exist."
fi

Ab sofort könnt Ihr euch nach jedem Login einen Überblick verschaffen. – Ganz ohne etwas einzugeben.