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