check_dfsr.sh 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. #!/bin/bash
  2. # Return Codes:
  3. # 0 - Ok! - Up
  4. # 1 - Warning - Flaky
  5. # 2 - Critical - Down
  6. # 3 - Unknown - Ummm... What happened?!
  7. print_usage() {
  8. echo "Usage: check_dfsr.sh [sending member] [waittime]"
  9. }
  10. #Parameter prüfen
  11. if [ $# -ne 2 ]; then
  12. print_usage
  13. STATE=3
  14. exit $STATE
  15. fi
  16. #Mounts prüfen
  17. MOUNTPOINTS=$(/usr/bin/mount | /usr/bin/grep "Icinga-Check" | /usr/bin/wc -l)
  18. if [ $MOUNTPOINTS -lt 2 ]; then
  19. echo "Source or Destination not mounted."
  20. STATE=3
  21. exit $STATE
  22. fi
  23. ZUFALL=$(date +%s)
  24. STATE=3
  25. SUCCESS=0
  26. SENDER=$(echo $1 | tr '[:upper:]' '[:lower:]')
  27. #ZIEL=$(echo $2 | tr '[:upper:]' '[:lower:]')
  28. ZEIT=$2
  29. if [[ $SENDER == *"nhi"* ]]; then
  30. QUELLDIR="/mnt/dfsr-check-nhi"
  31. ZIELDIR="/mnt/dfsr-check-hkl"
  32. elif [[ $SENDER == *"hkl"* ]]; then
  33. QUELLDIR="/mnt/dfsr-check-hkl"
  34. ZIELDIR="/mnt/dfsr-check-nhi"
  35. else
  36. echo "Source or Destination not found. Exiting."
  37. STATE=3
  38. exit $STATE
  39. fi
  40. echo "Furious Icinga-Check" > ${QUELLDIR}/${ZUFALL}.txt
  41. if [ $? -ne 0 ]; then
  42. echo "Error writing into Source-Directory."
  43. STATE=3
  44. exit $STATE
  45. fi
  46. #sleep $ZEIT
  47. for (( i=1; i<=$ZEIT; i++ )); do
  48. ls $ZIELDIR//${ZUFALL}.txt > /dev/null 2>&1
  49. if [ $? -eq 0 ]; then
  50. echo "DFS-Replication successful."
  51. STATE=0
  52. SUCCESS=1
  53. break
  54. fi
  55. sleep 1
  56. done
  57. if [ $SUCCESS -ne 1 ]; then
  58. echo "DFS-Replication not successful."
  59. STATE=2
  60. fi
  61. rm -f ${QUELLDIR}/${ZUFALL}.txt
  62. exit $STATE