check file time stamp inside a folder, nagios

Bagaimana bila kita ingin memeriksa seluruh file dalam sebuah folder, lalu bila kita menemukan file yang time stamp nya lebih dari 30 menit/ dari waktu yang kita tentukan, nagios mengirimkan peringatan.
#!/bin/bash
# Standard Nagios return codes
#OK       = 0
#WARNING  = 1
#CRITICAL = 2
#UNKNOWN  = 3

usage()
{
        echo "usage: check_amq [-c critical_value (in minutes)] [-d amq_path]"
        echo
        echo "check_amq -c 30 -d /path/to/amq_journal"
        exit 3
}

while getopts c:d: OPTNAME; do
        case "$OPTNAME" in
        c)
                CRITVAL="$OPTARG"
                ;;
        d)
                DIRPATH="$OPTARG"
                ;;
        *)
                usage
                ;;
        esac
done


#check value
if [ "$CRITVAL" = "" ]; then
        echo "Error: critical_value must not empty"
        usage
        exit 3
fi

#check directory path
if [ "$DIRPATH" = "" ]; then
        echo "Error: directory path must not empty"
        usage
        exit 3
fi

#set status number to 0
stat=0

# check if file are exist on that directory
CHECKFILE=$(($(ls -la $DIRPATH | grep -v '^d'| wc -l)-1))


if [ $CHECKFILE -gt 0 ]; then

        for file in $(find $DIRPATH -type f -print)
        do
                CHECK=`stat -c %y $file | cut -f1 -d '.'`
                MINUTES_SINCE=$(((`date +%s` - `date -d "$CHECK" +%s`)/60))

                if [ $MINUTES_SINCE -gt $CRITVAL ] ; then
                        echo "$file are $MINUTES_SINCE minutes"
                        let stat+=1
                fi
        done

        if [ $stat -gt 0  ]; then
                echo "*** CRITICAL ***"
                echo "$stat files older than $CRITVAL minutes"
                exit 2;
        else
                echo "OK - all file age lower than $CRITVAL minutes"
                exit 0;
        fi
fi
echo "No file at $DIRPATH"
hasil nya:
[fazries@fazries.com ~]$ ./check_amq.sh -c 100 -d /home/fazries/123
/home/fazries/123/1.txt are 103 minutes
*** CRITICAL ***
1 files older than 100 minutes
[fazries@fazries.com ~]$ ./check_amq.sh -c 150 -d /home/fazries/123
OK - all file age lower than 150 minutes

Comments

Popular posts from this blog

authentication failure using SSH pam_unix(sshd:auth): authentication failure;

Howto configure SPLUNK Universal Forwarder

openvpn howto make OCSP server using OpenSSL [Part2]