Преглед на файлове

new plug-in check_rsyslog.sh

Check for presence of rsyslog disk queue files
Jon Schipp преди 12 години
родител
ревизия
0d563d8a72
променени са 1 файла, в които са добавени 80 реда и са изтрити 0 реда
  1. 80 0
      check_rsyslog.sh

+ 80 - 0
check_rsyslog.sh

@@ -0,0 +1,80 @@
+#!/usr/bin/env bash
+
+# Author: Jon Schipp
+# Date: 01-27-2014
+########
+# Examples:
+
+# 1.) Check presence of disk queue (buffer)
+# $ ./check_rsyslog.sh -q rsyslog -d /var/spool/rsyslog
+
+# Nagios Exit Codes
+OK=0
+WARNING=1
+CRITICAL=2
+UNKNOWN=3
+
+# Default rsyslog spool directory 
+WORK_DIRECTORY=/var/spool/rsyslog
+
+usage()
+{
+cat <<EOF
+
+     Options:
+        -q <basename>    Check for presence of disk queue files
+	-d <dir>	 Specify \$WorkDirectory (def: /var/spool/rsyslog)
+
+Usage: $0 -q buf
+EOF
+}
+
+argcheck() {
+# if less than n argument
+if [ $ARGC -lt $1 ]; then
+        echo "Missing arguments! Use \`\`-h'' for help."
+        exit 1
+fi
+}
+
+# Initialize variables
+ARGC=$#
+QUEUE_CHECK=0
+
+argcheck 1
+
+while getopts "hd:q:" OPTION
+do
+     case $OPTION in
+         h)
+             usage
+             ;;
+	 d)
+	     WORK_DIRECTORY=$(echo $OPTARG | sed 's/\/$//')
+	     ;;
+         q)
+             BASENAME=$OPTARG
+	     QUEUE_CHECK=1
+             ;;
+         \?)
+             exit 1
+             ;;
+     esac
+done
+
+if [ $QUEUE_CHECK -eq 1 ]; then
+
+	# Remove stale 0 byte queue files
+	# find $WORK_DIRECTORY -type f -size 0c -regextype posix-basic -regex ".*/$BASENAME.*\.[0-9]\{8\}" | xargs rm -rf
+
+	COUNT=$(find $WORK_DIRECTORY -type f -size +0c -regextype posix-basic -regex ".*/$BASENAME.*\.[0-9]\{8\}" | wc -l)
+
+	if [ $COUNT -gt 0 ]; then
+		echo "Found buffer files"
+		find $WORK_DIRECTORY -type f -size +0c -regextype posix-basic -regex ".*/$BASENAME.*\.[0-9]\{8\}"
+		exit $CRITICAL
+	else
+		echo "No buffer files found"
+		exit $OK
+	fi
+fi