Zurück zu allen Artikeln

Dynamische SSH-Willkommensnachricht mit Systemstatus erstellen

admin
3 min Lesezeit
Dynamische SSH-Willkommensnachricht mit Systemstatus erstellen

Einleitung

Die Standard-Begrüssung beim Einloggen via SSH auf einem Linux-Server oder Raspberry Pi ist oft wenig informativ. Dabei ist der Moment des Logins der ideale Zeitpunkt, um wichtige Statuswerte wie IP-Adresse, Speicherbelegung oder ausstehende Updates auf einen Blick zu erfassen.

Dieses Tutorial zeigt, wie die Datei .bash_profile angepasst wird, um eine professionelle, farbige und informative Willkommensnachricht (MOTD – Message of the Day) zu generieren.

Voraussetzungen:

  • Zugriff auf das Linux-Terminal (z. B. Raspberry Pi)
  • Installiertes Tool figlet für ASCII-Art (optional)
  • Grundlegende Kenntnisse im Texteditor nano

[BILD 1: Vergleich zwischen langweiligem Standard-Login und dem neuen Dashboard]

Überblick

Nach der Umsetzung dieses Tutorials wird beim Login automatisch ein Skript ausgeführt, das folgende Informationen dynamisch ausliest und darstellt:

  • Grosser ASCII-Schriftzug (Hostname)
  • System-Laufzeit (Uptime)
  • Aktuelle IP-Adresse
  • RAM-Auslastung
  • Status verfügbarer Updates

Schritt-für-Schritt Anleitung

  1. ASCII-Art Tool installieren
    Damit der Servername gross dargestellt wird, nutzen wir das Tool figlet. Sollte dies nicht gewünscht sein, kann dieser Schritt übersprungen werden.
    sudo apt-get update
    sudo apt-get install figlet
  2. Profil-Datei bearbeiten
    Wir bearbeiten die benutzerspezifische Konfigurationsdatei. Diese wird bei jedem Login ausgeführt.

    Datei: .bash_profile
    Pfad: /home/benutzername/
    Aktion: Öffnen mit Nano

    nano ~/.bash_profile
  3. Skript einfügen
    Fügen Sie den folgenden Code am Ende der Datei ein. Dieser Block definiert Farben, liest Systemvariablen aus und gibt sie formatiert aus. Achten Sie auf die korrekte Syntax der Variablen (z. B. ${VAR}), um Fehler bei der Auflösung zu vermeiden.
    # --- KONFIGURATION START ---
    
    # Farben definieren
    RED='\033[0;31m'
    GREEN='\033[0;32m'
    BLUE='\033[0;34m'
    CYAN='\033[0;36m'
    NC='\033[0m' # No Color
    
    # System Uptime berechnen
    let upSeconds="$(/usr/bin/cut -d. -f1 /proc/uptime)"
    let secs=$((${upSeconds}%60))
    let mins=$((${upSeconds}/60%60))
    let hours=$((${upSeconds}/3600%24))
    let days=$((${upSeconds}/86400))
    UPTIME=$(printf "%d days, %02dh%02dm%02ds" "$days" "$hours" "$mins" "$secs")
    
    # System Infos sammeln
    IP_ADDRESS=$(hostname -I | awk '{print $1}')
    HOSTNAME=$(hostname)
    OS=$(lsb_release -ds)
    MEMORY=$(free -h | awk '/^Mem:/ {print $3 "/" $2}')
    
    # Updates prüfen (Unterdrückt Fehler, falls keine Rechte vorhanden sind)
    UPDATES=$(apt list --upgradeable 2>/dev/null | wc -l)
    # Korrektur da die erste Zeile der Ausgabe immer "Listing..." ist
    let UPDATES_COUNT=${UPDATES}-1
    
    # --- AUSGABE ---
    echo
    # Zeige Hostname als ASCII Art (falls figlet installiert ist)
    if command -v figlet &> /dev/null; then
        figlet "${HOSTNAME}"
    else
        echo "${HOSTNAME}"
    fi
    
    echo "------------------------------------------------------"
    echo -e "Hostname      : ${CYAN}${HOSTNAME}${NC}"
    echo -e "OS            : ${OS}"
    echo -e "IP Address    : ${BLUE}${IP_ADDRESS}${NC}"
    echo -e "System Uptime : ${GREEN}${UPTIME}${NC}"
    echo -e "Memory Usage  : ${GREEN}${MEMORY}${NC}"
    
    if [ ${UPDATES_COUNT} -gt 0 ]; then
      echo -e "Updates       : ${RED}${UPDATES_COUNT} available${NC}"
    else
      echo -e "Updates       : ${GREEN}System is up-to-date${NC}"
    fi
    echo "------------------------------------------------------"
    echo
    
    # --- KONFIGURATION ENDE ---

    [BILD 2: Screenshot des Nano-Editors mit eingefügtem Code]

  4. Änderungen testen
    Speichern Sie die Datei (STRG+O) und schliessen Sie den Editor (STRG+X). Um die Änderungen sofort zu sehen, laden Sie die Datei neu:
    source ~/.bash_profile

Wichtige Hinweise & Stolperfallen

.bashrc vs .bash_profile: Auf manchen Systemen (z. B. Debian/Ubuntu) wird standardmässig die .bashrc geladen. Sollte die Nachricht beim Login nicht erscheinen, fügen Sie den Code stattdessen in die Datei ~/.bashrc ein.

Performance: Der Befehl apt list --upgradeable kann je nach Systemzustand einen Moment dauern. Sollte sich der Login spürbar verzögern, entfernen Sie den Update-Check aus dem Skript.

Ergebnis & Fazit

Ihr Terminal begrüsst Sie nun mit einer übersichtlichen Statusanzeige. Dank der Farbcodierung sehen Sie sofort, ob Updates anstehen oder der Arbeitsspeicher knapp wird. Dies erhöht nicht nur den Komfort, sondern auch die administrative Sicherheit.

Ähnliche Artikel