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: //usr/lib64/nagios/plugins/check_a2_fsstate.sh.all
#!/bin/bash


nagios_cache_file="/var/tmp/$(basename $0)"
nagios_cache_age=900

# cacheage function
nagios_cacheage() {
  file=$1
  now=$(date +%s)
  mtime=$(stat -c %Y "$file")
  delta=$(( now - mtime ))
  echo $delta
}

nagios_generate_cache() {
  if pgrep -f /usr/local/cpanel/scripts/cpbackup >/dev/null; then
    for filesystem in $(mount|grep ext|awk '{print $1}'|sort|uniq); do
      echo "Filesystem_state_${filesystem} - Check delayed due to backups"
    done
  exit
  fi

  # check ext3 file systems
  for filesystem in $(mount|grep ext3|awk '{print $1}'|sort|uniq);do
    if [ "$(tune2fs -l ${filesystem} | grep "Filesystem state" | awk -F ':' '{print $2}' | tr -d ' ')" == "clean" ]; then
      echo "Filesystem_state_${filesystem} - file system is clean"
    else
      echo "Filesystem_state_${filesystem} - file system has errors"
    fi
  done

  # check ext4 file systems with both tune2fs and tune4fs
  if type tune4fs > /dev/null 2>&1; then
    for filesystem in $(mount|grep ext4|grep -v deleted|awk '{print $1}'|sort|uniq);do
      if [ "$(tune4fs -l ${filesystem} | grep "Filesystem state" | awk -F ':' '{print $2}' | tr -d ' ')" == "clean" ]; then
        echo "Filesystem_state_${filesystem} - file system is clean"
      else
        echo "Filesystem_state_${filesystem} - file system has errors"
      fi
    done
  else
    for filesystem in $(mount|grep ext4|grep -v deleted|awk '{print $1}'|sort|uniq);do
      if [ "$(tune2fs -l ${filesystem} | grep "Filesystem state" | awk -F ':' '{print $2}' | tr -d ' ')" == "clean" ]; then
        echo "Filesystem_state_${filesystem} - file system has clean"
      else
        echo "Filesystem_state_${filesystem} - file system has errors"
      fi
    done
  fi
}

if [ ! -e "${nagios_cache_file}" ]; then
  touch ${nagios_cache_file}
  nagios_generate_cache > "${nagios_cache_file}"
else
  cache_age=$(nagios_cacheage ${nagios_cache_file})
  if [ "${cache_age}" -ge "${nagios_cache_age}" ]; then
    nagios_generate_cache > "${nagios_cache_file}"
  fi
fi

if [ -f "${nagios_cache_file}" ]; then
  if grep -q "file system has errors" "${nagios_cache_file}"; then
    echo "Filesystem_state - Filesystems have errors: $(cat ${nagios_cache_file} | sed ':a;N;$!ba;s/\n/ /g')"
    exit 2
  else
    echo "Filesystem_state - Filesystems are clean"
    exit 0
  fi
fi