Build precise queries to find exactly what you need
Press ESC to close
I also want to check a sub directory in a share, so i added a sub directory parameter (-d), see the code: ——————————— [root@localhost ~]# cat /usr/local/nagios/libexec/check_smb_file.sh #!/bin/sh
# Check for file on SMB with nagios # Cristian Barreto 2013-03-27
REVISION=1.0 PROGNAME=`basename $0` PROGPATH=`echo $0 | sed -e ‘s,[\/][^\/][^\/]*$,,’`
. $PROGPATH/utils.sh
usage () { echo ” Nagios plugin to check for SAMBA File. Use anonymous login if user name is not supplied. IT NEEDS SMBCLIENT PACKET TO WORK!
Usage: $PROGNAME -H -W -s -f -u -p -S -E $PROGNAME –help $PROGNAME –version
” }
help () { print_revision $PROGNAME $REVISION echo; usage; echo; support }
#print help if [ $# -lt 3 ]; then usage exit $STATE_UNKNOWN fi
user=”guest” pasword=””
while test -n “$1”; do case “$1″ in –help | -h) help exit $STATE_OK;; –version | -V) print_revision $PROGNAME $REVISION exit $STATE_OK;; -H) shift host=”$1″;; -W) shift workgroup=”$1″;; -s) shift sharePathToTest=”$1″;; -d) shift directoryToTest=”$1″;; -f) shift fileToTest=”$1″;; -u) shift user=”$1″;; -p) shift password=”$1″;; -S) shift onSuccessMessage=”$1″;; -E) shift onErrorMessage=”$1″;; *) usage; exit $STATE_UNKNOWN;; esac shift done
onSuccessMessage=”OK: File exists!” onErrorMessage=”ERROR: File “//”$host””$sharePathToTest”$fileToTest” does not exists.”
if [ “$fileToTest” == “” ]; then echo “ERROR: You need to specify a file to test using -f parameter.” exit $STATE_UNKNOWN fi
if [ “$directoryToTest” == “” ]; then echo “directoryToTest = empty, do not add a sub directory after the share (and before the filename)” fileToTest=”$fileToTest” else echo “directoryToTest = Filled, add a sub directory after the share (and before the filename)” fileToTest = “$directoryToTest/$fileToTest” fi
smbclient //”$host””$sharePathToTest” -U “$user”%”$password” -W “$workgroup” -c “get “$directoryToTest/$fileToTest” /tmp/”$fileToTest””
if [ -f /tmp/”$fileToTest” ]; then rm -f /tmp/”$fileToTest” echo $onSuccessMessage exit $STATE_OK else echo $onErrorMessage exit $STATE_CRITICAL fi
We’ve completely redesigned the world’s largest repository of Nagios plugins and monitoring tools. Join thousands of users sharing monitoring solutions for servers, applications, and everything in between.
Due to our redesign, all existing accounts require a password reset to access your account again.
Ready to explore 6,100+ projects and contribute to the community?
Reset Password Create Account
Happy Monitoring!