Zum Inhalt springen

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.

    Schreibe einen Kommentar

    Deine E-Mail-Adresse wird nicht veröffentlicht.