Build precise queries to find exactly what you need
Press ESC to close
Join our next live webinar: “Advanced Nagios Monitoring Techniques” – Register Now
Your review has been submitted and is pending approval.
Simple script to test a samba share. You can use is to test if a file exists on a windows domain.
Usage: $PROGNAME -H -W -s -f -u -p -S -E $PROGNAME –help $PROGNAME –version
Current Version
1.0
Last Release Date
2013-03-28
Owner
Cristian
License
GPL
Compatible With
Put on your nagios plugins dir, and add it on Nagios configuration.
Simple script to test a samba share. You can use is to test if a file exists on a windows domain. 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 Put on your nagios plugins dir, and add it on Nagios configuration.
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
Thanks for the great script. Made the following updates to deal with files in subdirectories: $ diff check_smb_file check_smb_file-orig 18c18 $PROGNAME -H -W -s -f -u -p -S -E 57,59d56 ";; 82c79 onErrorMessage="ERROR: File "//"$host""$sharePathToTest"$fileToTest" does not exists." 89c86 smbclient //"$host""$sharePathToTest" -U "$user"%"$password" -W "$workgroup" -c "get '$fileToTest' /tmp/"$fileToTest"" 92c89 rm -f /tmp/"$fileToTest"
You must be logged in to submit a review.
To:
From: