Edit file File name : check_zpool_usage.sh Content :#!/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 Save