Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- #
- # check a WebDAV server
- # connect using a username and password and upload & delete a test file
- #Exit codes
- STATE_OK=0
- STATE_WARNING=1
- STATE_CRITICAL=2
- STATE_UNKNOWN=3
- FILENAME=test_monitor
- FQFN=/tmp/$FILENAME
- # Verify the type of input and number of values
- # Display an error message if the (input) is not correct
- # Exit the shell script with a warning status
- [ $# -ne 4 ] && {
- echo "Usage: $0 <hostname> <username> <password> <webdav_dir>"
- exit $STATE_UNKNOWN
- }
- HOSTNAME=$1
- USERNAME=$2
- PASSWORD=$3
- WEBDAVDIR=$4
- BASEURL=http://$HOSTNAME/$WEBDAVDIR
- # create temp file
- rm -rf $FQFN
- truncate -s 1M $FQFN
- if [ ! -f $FQFN ]; then
- echo "Test file not found!";
- exit $STATE_UNKNOWN;
- fi
- # check if curl is installed
- command -v curl >/dev/null 2>&1 || { echo >&2 "Curl is not installed. Script cannot run."; exit $STATE_UNKNOWN; }
- _curl() {
- curl --fail -u $USERNAME:$PASSWORD "$@"
- }
- # connect to server and upload file
- #curl --fail -s -T $FQFN -u $USERNAME:$PASSWORD http://$HOSTNAME/$WEBDAVDIR/ > /dev/null
- #_curl -s -T $FQFN $BASEURL/ > /dev/null
- _check_status() {
- status=$?
- case $status in
- 0)
- echo "OK - File uploaded on WebDAV Server: $HOSTNAME"
- # remove test file
- #curl --fail -X DELETE -u $USERNAME:$PASSWORD http://$HOSTNAME/$WEBDAVDIR/$FILENAME
- #_curl -X DELETE $BASEURL/$FILENAME
- exit $STATE_OK
- ;;
- 1)
- echo "CRITICAL - Cannot "$@" file on $HOSTNAME"
- exit $STATE_CRITICAL
- ;;
- 6)
- echo "CRITICAL - Could not resolve host $HOSTNAME"
- exit $STATE_CRITICAL
- ;;
- 26)
- echo "CRITICAL - Cannot open $FQFN for upload"
- exit $STATE_CRITICAL
- ;;
- 22)
- echo "CRITICAL - The requested URL returned error"
- exit $STATE_CRITICAL
- ;;
- 127)
- echo "CRITICAL - Command not found"
- exit $STATE_CRITICAL
- ;;
- *)
- echo "UNKNOWN - "
- exit $STATE_UNKNOWN
- esac
- }
- _curl -s -T $FQFN $BASEURL/ > /dev/null
- _check_status upload
- _curl -X DELETE $BASEURL/$FILENAME
- _check_status delete
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement