SMB

check_smb_file_simple

Description:

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

Compatible With

  • Nagios 3.x
  • Nagios XI

Owner

License

GPL


Project Files
Project Notes
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.
Reviews (2) Add a Review
I have also added a directory parameter
by JVD, December 31, 2019

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



Dealing with subdirectories
by cenovusjim, October 31, 2015

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"



Add a Review

You must be logged in to submit a review.

Thank you for your review!

Your review has been submitted and is pending approval.

Recommend

To:


From:


Thank you for your recommendation!

Your recommendation has been sent.

Project Stats
Rating
4 (2)
Favorites
0
Views
45,142