{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fswiss\fcharset0 Arial;}}
{\*\generator Msftedit 5.41.15.1510;}\viewkind4\uc1\pard\f0\fs20 #!/bin/bash\par
\par
# USER is the username that searched processes are running number\par
USER=nagios\par
# TTL is the minute value of the maximum time the process should be running.\par
TTL=60\par
# Email address to send alerts\par
EMAIL=cmarko@nothankyou.com\par
\par
# These are paths to UNIX utils and generally will not need to be modified.\par
AWK=/bin/awk\par
DATE=/bin/date\par
GREP=/bin/grep\par
MAIL=/bin/mail\par
PS=/bin/ps\par
\par
$PS -eo user,cputime,time,start,pid | $GREP "^$USER" | while read line\par
do\par
        # arr=($line)\par
        set -- $line\par
        echo "------------------------------------------------------"\par
        echo "User: $1";\par
        echo "CPU Time: $2";\par
        echo "Time: $3";\par
        echo "Start: $4 $5";\par
        if [ `echo $4 | grep -i ":"` ]\par
        then\par
                HOUR=`echo $4 | $AWK -F ":" '\{print $1\}'`\par
                MIN=`echo $4 | $AWK -F ":" '\{print $2\}'`\par
                TOTAL=`echo $[$HOUR*60]`;\par
                TOTAL=`echo $[$TOTAL+$MIN]`;\par
        else\par
                # 1440 mins in a day. Get date, subtract, and figure minutes\par
                TOTAL=`$DATE '+%d'`\par
                TOTAL=`echo $[$TOTAL-$5]`\par
                TOTAL=`echo $[$TOTAL*1440]`\par
        fi\par
\par
        echo "Total Minutes Running: $TOTAL";\par
        echo "PID: $5";\par
        if [ $TOTAL -gt $TTL ]\par
                then echo "This process exceeds $TTL. It should be killed."\par
                echo "Process ID $5 might be hung on rptbosin02." | $MAIL -s "rptbosin02:$5 PID running for $TOTAL Minutes" $EMAIL\par
                exit 2; # Exit with errorlevel 2\par
        fi\par
done\par
\par
exit 0;\par
\par
}
 
