View file File name : check_a2_fsstate.sh.all Content :#!/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