check_crashplan.sh 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. #!/usr/bin/env bash
  2. # Author: Jon Schipp
  3. ########
  4. # Examples:
  5. # 1.) Check if Crashplan is installed
  6. # $ ./check_crashplan.sh -I
  7. # 2.) Check Java heap settings of crashplan
  8. # $ ./check_crashplan.sh -H
  9. # Nagios Exit Codes
  10. OK=0
  11. WARNING=1
  12. CRITICAL=2
  13. UNKNOWN=3
  14. # Default Location of the binaries
  15. # Set these to the proper location if your installation differs
  16. CP_BIN=/usr/local/crashplan/bin/CrashPlanEngine
  17. CP_CONF=/usr/local/crashplan/bin/run.conf
  18. usage()
  19. {
  20. cat <<EOF
  21. Check status of CrashPlan on GNU/Linux
  22. Options:
  23. -I Check if Crashplan is installed and running
  24. -H Check if Crashplan heap size is >= Xmx4096m
  25. Usage: $0 -H
  26. EOF
  27. }
  28. argcheck() {
  29. # if less than n argument
  30. if [ $ARGC -lt $1 ]; then
  31. echo "Missing arguments! Use \`\`-h'' for help."
  32. exit 1
  33. fi
  34. }
  35. # Initialize variables
  36. CHECK_INSTALLED=0
  37. CHECK_CONF=0
  38. ARGC=$#
  39. argcheck 1
  40. while getopts "hIH" OPTION
  41. do
  42. case $OPTION in
  43. h)
  44. usage
  45. ;;
  46. I)
  47. CHECK_INSTALLED=1
  48. ;;
  49. H)
  50. CHECK_CONF=1
  51. ;;
  52. \?)
  53. exit 1
  54. ;;
  55. esac
  56. done
  57. if [[ $CHECK_INSTALLED -eq 1 ]]; then
  58. [[ -x $CP_BIN ]] || { echo "$CP_BIN not installed or executable" && exit $OK; }
  59. status=$(service crashplan status 2>&1)
  60. echo $status | egrep -q 'running|started' || { echo "$CP_BIN is installed but not running: ${status}" && exit $CRITICAL; }
  61. echo "$CP_BIN is installed and running" && exit $OK
  62. fi
  63. if [[ $CHECK_CONF -eq 1 ]]; then
  64. [[ -r $CP_CONF ]] || { echo "$CP_CONF not found or readable" && exit $OK; }
  65. . $CP_CONF
  66. echo $SRV_JAVA_OPTS | grep -q "Xmx[4-9][0-9][0-9][0-9][mM]" || { echo "Java heap too small: $SRV_JAVA_OPTS" && exit $CRITICAL; }
  67. echo "Heap is okay" && exit $OK
  68. fi