aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--contrib/check_smb.sh111
1 files changed, 111 insertions, 0 deletions
diff --git a/contrib/check_smb.sh b/contrib/check_smb.sh
new file mode 100644
index 00000000..728535a1
--- /dev/null
+++ b/contrib/check_smb.sh
@@ -0,0 +1,111 @@
+#!/bin/bash
+#
+# Program : check_smb
+# :
+# Author : Cal Evans <cal@calevans.com>
+# :
+# Purpose : Nagios plugin to return the number of users logged into a smb
+# : server and the number of files open.
+# :
+# Parameters : --help
+# : --version
+# :
+# Returns : Standard Nagios status_* codes as defined in utils.sh
+# :
+# Notes :
+#============:==============================================================
+# 1.0 : 06/27/2002
+# : Initial coding
+# :
+# 1.1 : 06/28/2002
+# : Re-wrote the user counter to match the file-lock counter.
+# :
+
+#
+# Shamelessly stolen from other Nagios plugins.
+#
+PROGNAME=`basename $0`
+PROGPATH=`echo $0 | /bin/sed -e 's,[\\/][^\\/][^\\/]*$,,'`
+REVISION=`echo '$Revision$' | sed -e 's/[^0-9.]//g'`
+
+
+. $PROGPATH/utils.sh
+
+print_usage() {
+ echo "Usage: $PROGNAME --help"
+ echo "Usage: $PROGNAME --version"
+}
+
+print_help() {
+ print_revision $PROGNAME $REVISION
+ echo ""
+ print_usage
+ echo ""
+ echo "Samba status check."
+ echo ""
+ support
+}
+
+# No command line arguments are required for this script. We accept only 2,
+# --help and --version. If more than 1 is passed in then we have an error
+# condition.
+
+if [ $# -gt 1 ]; then
+ print_usage
+ exit $STATE_UNKNOWN
+fi
+
+
+#
+# If we have arguments, process them.
+#
+exitstatus=$STATE_WARNING #default
+while test -n "$1"; do
+ case "$1" in
+ --help)
+ print_help
+ exit $STATE_OK
+ ;;
+ -h)
+ print_help
+ exit $STATE_OK
+ ;;
+ --version)
+ print_revision $PROGNAME $REVISION
+ exit $STATE_OK
+ ;;
+ -V)
+ print_revision $PROGNAME $REVISION
+ exit $STATE_OK
+ ;;
+
+ *)
+ echo "Unknown argument: $1"
+ print_usage
+ exit $STATE_UNKNOWN
+ ;;
+ esac
+ shift
+done
+
+#
+# No arguments. Let's kick this pig.
+#
+total_users=$(smbstatus -b | grep "^[0-9]" | wc -l)
+
+#
+# Ok, now let's grab a count of the files.
+#
+total_files=$(smbstatus | grep "^[0-9]" | wc -l)
+
+#
+# now for the dismount.
+#
+echo "Total Users:$total_users Total Files:$total_files"
+
+#
+# let Nagios know that everything is ok.
+#
+exit $STATE_OK
+
+