Skip to content

Instantly share code, notes, and snippets.

@goulon
Last active July 7, 2017 19:43
Show Gist options
  • Save goulon/e28a7d0b17d518c7367dc3506395dbc9 to your computer and use it in GitHub Desktop.
Save goulon/e28a7d0b17d518c7367dc3506395dbc9 to your computer and use it in GitHub Desktop.
#!/bin/bash
while getopts 'w:c:' OPT; do
case $OPT in
w) WARN=$OPTARG;;
c) CRIT=$OPTARG;;
esac
done
WARN=${WARN:=90}
CRIT=${CRIT:=95}
grep 'rootfs' /etc/fstab | awk '{ print $1,$2 }' | grep -v '^#' | awk '{ print $2 }' > /etc/sensu/plugins/disks.tmp
while read vDisk
do
vUsed=`df -P | grep -w ${vDisk} | awk '{ print $5 }' | cut -d'%' -f'1'| head -n 1`
if [ "${vUsed}" ]
then
if [ "${vUsed}" -ge "${CRIT}" ]
then
vCrit="${vCrit} ${vUsed}%:${vDisk}"
else
if [ "${vUsed}" -ge "${WARN}" ]
then
vWarn="${vWarn} ${vUsed}%:${vDisk}"
else
vOk="${vOk} ${vUsed}%:${vDisk}"
fi
fi
else
vCrit="${vCrit} Fail:${vDisk}"
fi
done < /etc/sensu/plugins/disks.tmp
rm /etc/sensu/plugins/disks.tmp
if [ "${vCrit}" ]
then
if [ "${vWarn}" ] && [ "${vOk}" ]
then
echo "CRIT:${vCrit} WARN:${vWarn} OK:${vOk}"
else
if [ "${vWarn}" ]
then
echo "CRIT:${vCrit} WARN:${vWarn}"
else
echo "CRIT:${vCrit} OK:${vOk}"
fi
fi
exit 2
else
if [ "${vWarn}" ]
then
if [ "${vOk}" ]
then
echo "WARN:${vWarn} OK:${vOk}"
else
echo "WARN:${vWarn}"
fi
exit 1
else
echo "OK:${vOk}"
exit 0
fi
fi
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment