# Scripte # check_interfaces.sh ```shell #!/bin/sh # checkt ob alle Interface up sind und Link haben und liefert einen fuer Nagios gueltigen Return-Wert CARDS="dev0 eth1 eth2 eth3" DEBUG=0 MESG="" INTOK="OK:" for card in $CARDS do if [ $DEBUG -gt 0 ] then echo -n "Testing $card " fi ret=$(ethtool -t $card online > /dev/null 2>&1 ; echo $?) if [ $ret -gt 0 ] then echo "CRITICAL: Interface $card failed!" exit 2 else INTOK="$INTOK $card" fi done echo "$INTOK operating normally" exit 0 ``` # check_ldap_response.sh zuerst muss mit dem Parameter -g ein Diff-File erzeugt werden, dann können mit dem Parameter -f die Antworten der LDAP-Server mit dem File verglichen werden. ```shell #!/bin/sh # 2005 Oliver Voelker # checkt die LDAP-Server auf korrekte Antworten und Syncronisation # usage: # check_ldap_response.sh -H [-p ] -b -D -P -f -v # # generate check-file: # check_ldap_response.sh -H [-p ] -b -D -P -g -v LDAPSEARCH=`which ldapsearch` PORT="389" LDAPLOOKUP="uid=testuser" TMP=/tmp/ldap.$$ DIFF=$(dirname $0)/ldap-checkfile while getopts "H:p:b:D:P:g:f:v" flag do #echo "$flag" $OPTIND $OPTARG case "$flag" in H) HOST=$OPTARG ;; p) PORT=$OPTARG ;; b) BASE=$OPTARG ;; D) BINDDN=$OPTARG ;; P) BINDPW=$OPTARG ;; g) DIFF=$(dirname $0)/ldap-$OPTARG echo "lege Vergleichsfile $DIFF an..." $LDAPSEARCH -h $HOST -p $PORT -b $BASE -D $BINDDN $LDAPLOOKUP -x -w $BINDPW > $DIFF exit 0 ;; f) DIFF=$(dirname $0)/ldap-$OPTARG ;; v) $LDAPSEARCH -h $HOST -p $PORT -b $BASE -D $BINDDN $LDAPLOOKUP -x -w $BINDPW > $TMP diff -y $TMP $DIFF ;; *) echo "Ungueltiges Kommandozeilenargument" exit 1 ;; esac done if [ -z $HOST ] || [ -z $BASE ] || [ -z $BINDDN ] || [ -z $BINDPW ]; then echo "Fehlendes Argument!" echo "usage:" echo "check_ldap_response.sh -H [-p ] -b -D -P -f " echo "generate checkfile:" echo "check_ldap_response.sh -H [-p ] -b -D -P -g " exit 2 fi if [ -z $LDAPSEARCH ]; then echo "ldapsearch (openldap-clients) nicht gefunden, bitte installieren." exit 2 fi if [ ! -r $DIFF ]; then echo "Vergleichsfile $DIFF existiert nicht oder kann nicht gelesen werden, bitte mit parameter -g aufrufen!" exit 2 fi $LDAPSEARCH -h $HOST -p $PORT -b $BASE -D $BINDDN $LDAPLOOKUP -x -w $BINDPW > $TMP diff $TMP $DIFF > /dev/null 2>&1 if [ $? != "0" ]; then echo "LDAP Server nicht synchron bzw. Antwort fehlerhaft" exit 2 fi rm $TMP echo "LDAP Server ist synchron" ``` # pingall.sh ```shell #!/bin/sh SERVERLIST=serverlist.txt if [ -e $SERVERLIST ]; then for SERVER in `cat $SERVERLIST`; do trap 'exit 0' 2 ping -c2 $SERVER echo done fi ``` # check_vips.sh ```shell #!/bin/sh # quick n very dirty check # wieviele IPs sollte ich haben? SHOULD=10 VIPs=`/sbin/ip a | grep "inet " | wc -l | awk -F" " '{ print $1 }'` if [ ! "$VIPs" -eq "$SHOULD" ]; then echo "CRITICAL: owned IPs: $VIPs - should be: $SHOULD" exit 2 else echo "OK: owned IPs: $VIPs" exit 0 fi ``` # count-packets.sh ```shell #!/bin/bash # # 2008 Oliver Voelker # # Pakete pro Sekunde fuer ein bestimmtes Interface ermitteln # if [ -z $1 ]; then echo "Usage: $0 [