ROOTPLOIT
Server: Apache
System: Linux node6122.myfcloud.com 6.14.3-x86_64-linode168 #1 SMP PREEMPT_DYNAMIC Mon Apr 21 19:47:55 EDT 2025 x86_64
User: bashacomputer (1004)
PHP: 7.4.33
Disabled: exec,passthru,shell_exec,system
Upload Files
File: //lib64/nagios/plugins/check_a2_disk.sh
#!/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