#!/bin/bash # Return Codes: # 0 - Ok! - Up # 1 - Warning - Flaky # 2 - Critical - Down # 3 - Unknown - Ummm... What happened?! print_usage() { echo "Usage: check_dfsr.sh [sending member] [waittime]" } #Parameter prüfen if [ $# -ne 2 ]; then print_usage STATE=3 exit $STATE fi #Mounts prüfen MOUNTPOINTS=$(/usr/bin/mount | /usr/bin/grep "Icinga-Check" | /usr/bin/wc -l) if [ $MOUNTPOINTS -lt 2 ]; then echo "Source or Destination not mounted." STATE=3 exit $STATE fi ZUFALL=$(date +%s) STATE=3 SUCCESS=0 SENDER=$(echo $1 | tr '[:upper:]' '[:lower:]') #ZIEL=$(echo $2 | tr '[:upper:]' '[:lower:]') ZEIT=$2 if [[ $SENDER == *"nhi"* ]]; then QUELLDIR="/mnt/dfsr-check-nhi" ZIELDIR="/mnt/dfsr-check-hkl" elif [[ $SENDER == *"hkl"* ]]; then QUELLDIR="/mnt/dfsr-check-hkl" ZIELDIR="/mnt/dfsr-check-nhi" else echo "Source or Destination not found. Exiting." STATE=3 exit $STATE fi echo "Furious Icinga-Check" > ${QUELLDIR}/${ZUFALL}.txt if [ $? -ne 0 ]; then echo "Error writing into Source-Directory." STATE=3 exit $STATE fi #sleep $ZEIT for (( i=1; i<=$ZEIT; i++ )); do ls $ZIELDIR//${ZUFALL}.txt > /dev/null 2>&1 if [ $? -eq 0 ]; then echo "DFS-Replication successful." STATE=0 SUCCESS=1 break fi sleep 1 done if [ $SUCCESS -ne 1 ]; then echo "DFS-Replication not successful." STATE=2 fi rm -f ${QUELLDIR}/${ZUFALL}.txt exit $STATE