HowTo: LDAP-Server online|offline (Script)

Hi.
Hier ist ein kleines Script, das überprüft, ob der LDAP-Server erreichbar ist oder nicht. Voraussetzung: ldap-utils müssen installiert sein. Wir haben es z.B. als Cronjob eingerichtet und bekommen nun ein eMail, wenn der LDAP-Dienst aus irgendwelchen Gründen nicht mehr erreichbar ist. Gerade im Moment sehr sinnvoll…

#!/bin/bash

#testet with v6.x
HOST="ldaps://mein-linuxmuster.ldap-server.de:636"
BASE_DN=ou="accounts, dc=linuxmuster, dc=local"
MAIL="my.email-address@provider.com"

export LDAPTLS_REQCERT=never
RESULT=`ldapsearch -x -H $HOST -b"$BASE_DN" | grep "# numEntries:" | awk '{print $3}'`

if [[ "$RESULT" -gt 0 ]]
        then
                 echo -e "`date`: LDAP Server \e[42mONLINE\033[0m"
        else
                echo -e "`date`: LDAP Server \e[41mOFFLINE\033[0m"
                echo -e "`date`: Sending mail to $MAIL"
                echo "Der LDAP-Server ist seit `date` offline!" | mail -s "LDAP-SERVER OFFLINE" $MAIL
fi

(Code-Schnipsel stammt nicht von mir – will mich ja nicht mit fremden Lorbeeren schmücken)

Wer’s gebrauchen kann – …
Michael

Hallo.
Gerade habe ich diesen Beitrag wiedergefunden und festgestellt, dass ich das ganze irgendwann auch mal an den v7-Server angepasst hatte.

Hier also die aktuellere Version – vielleicht kann’s weiterhin jemand gebrauchen?

#!/bin/bash

####################################################################
# Version 1.1 -- von M. Hagedorn, 05.07.2022
# Script zum schnellen Checken, ob der LDAP/AD-Server online ist
# oder nicht. Im Fehlerfall wird eine eMail geschickt.
# Getestet mit linuxmuster-Server v7.2
####################################################################

####################################################################
#Variablen:
MAIL="email@an-mich.de"
base="ou=default-school,ou=SCHOOLS,dc=linuxmuster,dc=lan"
server="ldaps://server.linuxmuster.lan:636"
binduser="global-binduser@linuxmuster.lan"
bindpw="super-geheimes-passwort"
# cat /etc/linuxmuster/.secret/global-binduser
####################################################################
#set -x

#export LDAPTLS_REQCERT=never
RESULT=`ldapsearch -b "$base" -H $server -x -D $binduser -w $bindpw | grep "# numEntries:" | awk '{print $3}'`

if [[ "$RESULT" -gt 0 ]]
        then
            echo -e "`date`: LDAP Server \e[42mONLINE\033[0m"
        else
            echo -e "`date`: LDAP Server \e[41mOFFLINE\033[0m"
            echo -e "`date`: Sending mail to $MAIL"
            echo "Der LDAP-Server ist seit `date` offline!" | mail -s "LDAP-SERVER OFFLINE" $MAIL
fi

Viele Grüße,
Michael

1 „Gefällt mir“