| Server IP : 198.38.94.67 / Your IP : 216.73.217.74 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 : /usr/lib64/nagios/plugins/ |
Upload File : |
#!/bin/bash
# Ref - 869830c19 - check_a2_vps_disk -a custom script to monitor VZ container storage
#
disk_checker() {
diskc_warn=90
diskc_crit=95
for mount in $(cat /proc/mounts | grep -vE "cagefs|cgroup|binfmt|mqueue|dev/pts|run/user|/proc|/sys|virtfs|/run|tmpfs" | awk '{print $2}'); do
df_storage=$(df -k ${mount} | tail -n +2)
df_storage_mount=$(echo "${df_storage}" | awk '{print $NF}')
df_storage_usep=$(echo "${df_storage}" | awk '{print $5}' | tr -d '%')
df_storage_avail=$(echo "${df_storage}" | awk '{print $4 / 1024"MB"}')
df_storage_used=$(echo "${df_storage}" | awk '{print $3}')
df_storage_total=$(echo "${df_storage}" | awk '{print $2}')
df_inodes=$(df -i ${mount} | tail -n +2)
df_inodes_mount=$(echo "${df_inodes}" | awk '{print $NF}')
df_inodes_usep=$(echo "${df_inodes}" | awk '{print $5}' | tr -d '%')
df_inodes_avail=$(echo "${df_inodes}" | awk '{print $4}')
df_inodes_used=$(echo "${df_inodes}" | awk '{print $3}')
df_inodes_total=$(echo "${df_inodes}" | awk '{print $2}')
if [[ "${df_storage_usep}" -gt "${diskc_warn}" ]] && [[ "${df_storage_usep}" -lt "${diskc_crit}" ]]; then
echo "WARN: ${df_storage_mount} ${df_storage_usep}% ${df_storage_avail} (Inodes: ${df_inodes_total}/${df_inodes_used} - ${df_inodes_usep}%)"
elif [[ "${df_storage_usep}" -lt "${diskc_warn}" ]]; then
echo "OK: ${df_storage_mount} ${df_storage_usep}% ${df_storage_avail} (Inodes: ${df_inodes_total}/${df_inodes_used} - ${df_inodes_usep}%)"
elif [[ "${df_storage_usep}" -gt "${diskc_crit}" ]]; then
echo "CRIT: ${df_storage_mount} ${df_storage_usep}% ${df_storage_avail} (Inodes: ${df_inodes_total}/${df_inodes_used} - ${df_inodes_usep}%)"
fi
done
}
check_disk_data=$(disk_checker | sed ':a;N;$!ba;s/\n/; /g')
if echo "${check_disk_data}" | grep -q CRIT; then
echo "DISK CRITICAL - free space: ${check_disk_data}"
exit 2
elif echo "${check_disk_data}" | grep -q WARN; then
echo "DISK WARN - free space: ${check_disk_data}"
exit 1
else
echo "DISK OK - free space: ${check_disk_data}"
exit 0
fi