bash script für den NETCAT Verbindungstest zu einem SAP S/4HANA System

Das Bash-Skript eignet sich gut für verschiedene Anwendungsfälle, insbesondere wenn Sie regelmäßig die Verfügbarkeit einer Netzwerkverbindung zu einem SAP System überprüfen müssen. Das kann hilfreich sein, wenn Sie zum unterschiedliche Verbindungen mittels SD-WAN verwenden und in den Logs ihres SAP Systems feststellen, dass es Verbindungsunterbrüche gibt. Hier sind einige Anwendungsfälle, für die das Bash-Skript geeignet ist:

  1. Netzwerküberwachung: Das Skript kann verwendet werden, um die Verfügbarkeit einer bestimmten IP-Adresse und Ports in einem Netzwerk zu überwachen.
  2. Periodisches Testen von Verbindungen: Durch die Verwendung eines Cronjobs kann das Skript regelmäßig ausgeführt werden, um sicherzustellen, dass die Verbindung zu einem bestimmten Zeitpunkt oder in regelmäßigen Intervallen überprüft wird.
  3. Protokollierung von Verbindungsereignissen: Das Skript protokolliert alle Verbindungsereignisse in eine Textdatei, einschließlich Zeitstempel und ob die Verbindung erfolgreich oder fehlgeschlagen ist. Diese Protokolle können für die Fehleranalyse und Diagnose nützlich sein.
  4. Benachrichtigung bei Verbindungsfehlern: Bei einem Verbindungsfehler sendet das Skript eine Benachrichtigung per E-Mail an den Administrator, so dass dieser über Probleme informiert wird und entsprechend reagieren kann.
  5. Löschung alter Protokolleinträge: Das Skript kann auch ältere Protokolleinträge bereinigen, um die Protokolldatei sauber zu halten und unnötigen Speicherplatz zu sparen.

Netcat, auch als nc bezeichnet, ist ein Befehlszeilen-Tool, das für die Netzwerkinteraktion verwendet wird. Es kann als einfacher TCP/IP-Client oder -Server dienen und ermöglicht das Senden und Empfangen von Daten über Netzwerkverbindungen. Netcat kann für eine Vielzahl von Aufgaben verwendet werden, darunter Portscans, Dateiübertragungen, Netzwerkkommunikationstests und sogar als Backdoor für Remote-Zugriff. Daher ist nc bei den Netzwerkkollegen ein sehr beliebtes Tool, welches wir uns nun zum Verbindungstest mit einem SAP S/4HANA System benutzen.

HowTo test netcat connection to SAP System with IP and Port

First step is to create a file and store this file in /usr/local/bin

#!/bin/bash

# Funktion zur Überprüfung der Verbindung und Versenden von Benachrichtigungen
check_connection() {
    timestamp=$(date +"%Y-%m-%d %H:%M:%S")
    if nc -z "$1" "$2" >/dev/null 2>&1; then
        echo "$timestamp Verbindung erfolgreich" >> /tmp/connectiontest.txt
    else
        echo "$timestamp Verbindung fehlgeschlagen" >> /tmp/connectiontest-failed.txt
        # Benachrichtigung per E-Mail senden
        echo "Verbindungsfehler zu $1:$2" | mail -s "Verbindungsfehler" your_email@example.com
    fi
}

# Funktion zum Löschen von alten Timestamps in der Datei
delete_old_timestamps() {
    # Finden und Löschen von Timestamps, die älter als 10 Tage sind
    find /tmp/connectiontest.txt -type f -mtime +10 -exec sed -i '/^[0-9]\{4\}-[0-9]\{2\}-[0-9]\{2\}/d' {} \;
    find /tmp/connectiontest-failed.txt -type f -mtime +10 -exec sed -i '/^[0-9]\{4\}-[0-9]\{2\}-[0-9]\{2\}/d' {} \;
}

# Löschen älterer Timestamps
delete_old_timestamps

# Aufruf der Verbindungsfunktion
check_connection "8.8.8.8" 3200

# Alle Netcat-Prozesse beenden
# pkill -u $USER nc

# Prozess beenden
exit 0

Change the linux file system permissions (more information https://www.redhat.com/sysadmin/linux-file-permissions-explained)

sudo chmod 755

Run the script via cron job – use a proper user because of killing all nc connections of this user (by default killing it is disabled).

crontab -e

Run the script every minute

* * * * *  /usr/local/bin/.sh

Check the results in folder /tmp

Kommentar verfassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Nach oben scrollen