2024-02-18 00:38:45 -07:00
|
|
|
#!/bin/bash
|
|
|
|
|
2024-02-18 00:42:20 -07:00
|
|
|
# Default exit code for Nagios
|
|
|
|
STATE_OK=0
|
|
|
|
STATE_WARNING=1
|
|
|
|
STATE_CRITICAL=2
|
|
|
|
STATE_UNKNOWN=3
|
|
|
|
|
|
|
|
# Parse command line options
|
|
|
|
while getopts "p:" OPTION
|
|
|
|
do
|
|
|
|
case $OPTION in
|
|
|
|
p)
|
|
|
|
path=$OPTARG
|
|
|
|
;;
|
|
|
|
*)
|
|
|
|
echo "Usage: $0 -p <path>"
|
|
|
|
exit $STATE_UNKNOWN
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
done
|
|
|
|
|
|
|
|
# Check if path is set
|
|
|
|
if [ -z "$path" ]; then
|
|
|
|
echo "No path specified"
|
|
|
|
echo "./check_not_writable.sh -p [directory to check]"
|
|
|
|
exit $STATE_UNKNOWN
|
2024-02-18 00:38:45 -07:00
|
|
|
fi
|
|
|
|
|
|
|
|
# Check if directory exists
|
2024-02-18 00:42:20 -07:00
|
|
|
if [ ! -d "$path" ]; then
|
|
|
|
echo "UNKNOWN - $path is not a directory"
|
2024-02-18 00:38:45 -07:00
|
|
|
exit 3
|
|
|
|
fi
|
|
|
|
|
2024-02-18 00:42:20 -07:00
|
|
|
# Check if directory is writable
|
|
|
|
if [ ! -w "$path" ]; then
|
|
|
|
echo "OK - $path is not writable"
|
|
|
|
exit $STATE_OK
|
2024-02-18 00:38:45 -07:00
|
|
|
else
|
2024-02-18 00:42:20 -07:00
|
|
|
echo "CRITICAL - $path is writable"
|
2024-02-18 00:38:45 -07:00
|
|
|
exit 2
|
|
|
|
fi
|