check_rsyslog.sh 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. #!/usr/bin/env bash
  2. # Author: Jon Schipp
  3. # Date: 01-27-2014
  4. ########
  5. # Examples:
  6. # 1.) Check presence of disk queue (buffer)
  7. # $ ./check_rsyslog.sh -q rsyslog -d /var/spool/rsyslog
  8. # Nagios Exit Codes
  9. OK=0
  10. WARNING=1
  11. CRITICAL=2
  12. UNKNOWN=3
  13. # Default rsyslog spool directory
  14. WORK_DIRECTORY=/var/spool/rsyslog
  15. usage()
  16. {
  17. cat <<EOF
  18. Options:
  19. -q <basename> Check for presence of disk queue files
  20. -d <dir> Specify \$WorkDirectory (def: /var/spool/rsyslog)
  21. Usage: $0 -q buf
  22. EOF
  23. }
  24. argcheck() {
  25. # if less than n argument
  26. if [ $ARGC -lt $1 ]; then
  27. echo "Missing arguments! Use \`\`-h'' for help."
  28. exit 1
  29. fi
  30. }
  31. # Initialize variables
  32. ARGC=$#
  33. QUEUE_CHECK=0
  34. argcheck 1
  35. while getopts "hd:q:" OPTION
  36. do
  37. case $OPTION in
  38. h)
  39. usage
  40. ;;
  41. d)
  42. WORK_DIRECTORY=$(echo $OPTARG | sed 's/\/$//')
  43. ;;
  44. q)
  45. BASENAME=$OPTARG
  46. QUEUE_CHECK=1
  47. ;;
  48. \?)
  49. exit 1
  50. ;;
  51. esac
  52. done
  53. if [ $QUEUE_CHECK -eq 1 ]; then
  54. # Remove stale 0 byte queue files
  55. # find $WORK_DIRECTORY -type f -size 0c -regextype posix-basic -regex ".*/$BASENAME.*\.[0-9]\{8\}" | xargs rm -rf
  56. COUNT=$(find $WORK_DIRECTORY -type f -size +0c -regextype posix-basic -regex ".*/$BASENAME.*\.[0-9]\{8\}" | wc -l)
  57. if [ $COUNT -gt 0 ]; then
  58. echo "Found buffer files"
  59. find $WORK_DIRECTORY -type f -size +0c -regextype posix-basic -regex ".*/$BASENAME.*\.[0-9]\{8\}"
  60. exit $CRITICAL
  61. else
  62. echo "No buffer files found"
  63. exit $OK
  64. fi
  65. fi