I'm not an expert in writing shell scripts but also I'm looking for a very specific solution.

OS: CentOS release 5.2 (Final)

I've a Java standalone which keeps writing (all System.out.println) to a log file. For some unknown reason, this Java standalone stops working at some point of time in my server and eventually logs writing also stops working.

I want to have a script which checks the last modified date & time of the log file with current date & time in the server. If the time difference exceeds more than 5 minutes, I want to send an email immediately to my recipients list. This way I'll come to know when this Java standalone has stopped working.

I'll move this script to crontab and make it run for every 1 minute, so that this whole process is automated.

Log file location: /usr/local/logs/standalone.log

  • 1
    this is more likely to get a good answer on stackoverflow.com – cpbills May 13 '10 at 6:07

however, i was bored... something like:


SUBJECT="blah is more than 5 minutes old!"

MOD=`stat --printf=%Y $1`
NOW=`date +%s`
if [ $DIFF > 300 ]; then
    echo "$1 is more than 5 minutes old!" > $MSG
    mail -s "$SUBJECT" "$EMAIL" < $MSG
  • Where is the file location /usr/local/logs/standalone.log passed to in the above script? – Gnanam May 13 '10 at 6:46
  • @Gnanam: It's the first command line argument ($1). – vwegert May 13 '10 at 7:53
  • i think $DIFF > 300 should be $DIFF -gt 300 i was a little tired when writing this – cpbills May 13 '10 at 16:04

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.