Build precise queries to find exactly what you need
Press ESC to close
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 <host> -W <OPT:workgroup> -s <share path to test> -f <file to test> -u <OPT:user> -p <OPT:password> -S <OPT:on success message> -E <OPT:on error message> $PROGNAME --help $PROGNAME --version
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:
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!