File monitor and alert


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting File monitor and alert
# 1  
Old 04-07-2017
File monitor and alert

whats is the best way to monitor file if it has not updated in last 24 hours.
example /var/logmessages in linux , /var/adm/messaged in solaris and alert to email .

find with mtime , perl file stat, anyone have any script examples of something better ?
# 2  
Old 04-07-2017
Hi,

find could certainly be used in this scenario, yes. Here's a quick example based on a timescale of one minute, rather than one day, just to demonstrate the principal in action:

Code:
$ touch /tmp/testfile
$ find /tmp/testfile -mmin +1
$ sleep 60
$ find /tmp/testfile -mmin +1
/tmp/testfile
$

So the idea is to run your find command pointing directly at the file you're interested in, and specify your interval. So our example here is based on finding the file if it's been modified more than one minute ago via -mmin +1, but you could just as easily check for over one day with -mtime +1.

Hope this helps.
This User Gave Thanks to drysdalk For This Post:
# 3  
Old 04-07-2017
-mmin is not available for all versions of find. Also -mtime +1 means that the file is last modified more than 86400 seconds ago. Not how us humans think of yesterday.

Consider:
Code:
#!/bin/sh
# ago.shl
# usage: ago.shl [number] 
#       for date [number] days ago, at midnight, last second of that day.
#       ./ago.shl 3 /path/to/myfile
#   parms $1 days in past 
#         $2 name of  file to change mtime on
ago()
{
   perl -e ' my $delta = $ARGV[0];
             $delta*=86400;
             $delta=time - $delta;   #  subtract delta from "now"
              ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) =
                                                            localtime($delta);
             
             printf("%04d%02d%02d%02d%02d.%02d\n",
                     $year+1900, $mon+1, $mday, 23, 59, 59);
             ' $1
}

# ago 1  last second of yesterday i.e., 2017062359.59 in touch format

when=$(ago $1)
# echo "$when"
touch -t "$when" $2
exit 0

These 2 Users Gave Thanks to jim mcnamara For This Post:
# 4  
Old 04-07-2017
Last 24 hours(=1 day) is possible with the classic find options
Code:
if [ "`find /var/adm/messages -mtime +0`" ]
then
   echo "older than 1 day"
fi

This User Gave Thanks to MadeInGermany For This Post:
Login or Register to Ask a Question

Previous Thread | Next Thread

3 More Discussions You Might Find Interesting

1. Infrastructure Monitoring

Searching for Saas Monitor service which monitor my servers which are sitting in different providers

Sorry if this is the wrong forum Searching for Saas Monitor service which monitor my servers which are sitting in different providers . This monitor tool will take as less CPU as possible , and will send info about the server to main Dashboard. The info I need is CPU / RAM / my servers status (... (1 Reply)
Discussion started by: umen
1 Replies

2. AIX

Alert: Network Status Monitor daemon (rpcstat) is not running

Hi I am currently testing SCOM2012 on my AIX systems for monitoring. I tested it on 3 systems and immediately i got the following errors: Alert: Network Status Monitor daemon (rpcstat) is not running Source: AIX 7.1 Path: (left blank) Last modified by: (left blank) Last modified time:... (3 Replies)
Discussion started by: jsabo40
3 Replies

3. Shell Programming and Scripting

script to monitor files in a directory and sending the alert

Hi All, We are having important config files in an directory which was accessable by all /auto/config/Testbed/>ls config1.intial config2.intial config3.inital often we find that some of the lines are missing in config files, we doubt if some one is removing. I would like to write... (0 Replies)
Discussion started by: shellscripter
0 Replies
Login or Register to Ask a Question