| Server IP : 198.38.94.67 / Your IP : 216.73.217.142 Web Server : LiteSpeed System : Linux d6054.dxb1.stableserver.net 5.14.0-570.25.1.el9_6.x86_64 #1 SMP PREEMPT_DYNAMIC Wed Jul 9 04:57:09 EDT 2025 x86_64 User : azfilmst ( 1070) PHP Version : 7.4.33 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /proc/self/root/usr/lib64/nagios/plugins/ |
Upload File : |
#!/usr/bin/env bash
# Icinga/Nagios plugin to check zpool free space
# Change the VALUE number to determine <#TB will the check be.
VALUE=5
# Parse arguments
while [[ $# -gt 0 ]]; do
case $1 in
--usage)
if [[ -n $2 && $2 =~ ^[0-9]+$ ]]; then
VALUE=$2
shift 2
else
echo "Error: --usage requires an integer argument" >&2
exit 3
fi
;;
*)
shift
;;
esac
done
THRESHOLD=$((VALUE * 1024 * 1024 * 1024 * 1024))
critical_pools=()
while IFS=$'\t' read -r pool free; do
[[ -z "$pool" ]] && continue
if (( free < THRESHOLD )); then
critical_pools+=("$pool")
fi
done < <(zpool list -Hp -o name,free 2>/dev/null)
if [ ${#critical_pools[@]} -gt 0 ]; then
echo "CRITICAL: ${critical_pools[*]} pool requires attention ${VALUE}TB"
exit 2
else
echo "OK: All zpools have >=${VALUE}TB free"
exit 0
fi