Run a script when a file is modified/time stamp changed


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Run a script when a file is modified/time stamp changed
# 1  
Old 04-21-2011
Run a script when a file is modified/time stamp changed

Hi,

I need to run a script file which uses a file and that file is modified as and when some alarms generated, it is not based on any fixed time period.. it may be modified even once in a minute for some time and once in 30 min or once in 20 min. Hence i need to watch for the timestamp change of this file and run some scripts to process that. Since the file is overwritten i have to follow this kind of process.

pls guide me..

---------- Post updated at 05:44 PM ---------- Previous update was at 05:35 PM ----------

Hope this may help
Code:
time=$(ls -l $1 | awk -F" "  '{ print $7 }')
while :
do
   chk_time=$(ls -l $1 | awk -F" "  '{ print $7 }')
   if [ "$chk_time" != "$time" ]
   then
      echo "File modified"
      mailx -s "File $1 modified"  abc.dfg@xxx.com
      break; # if you want to stop the script once mail is send
   fi
   sleep 5  # 5sec wait time
done

# 2  
Old 04-21-2011
so what is it that you want?

regards,
Ahamed
# 3  
Old 04-23-2011
Hi,

In a hurry i posted that requirement and searched immediately and got some clue...but i tried the following way i could not succeed.
Code:
#!/bin/bash
time=$(ls -l /home/dg/sm.ini | /usr/xpg4/bin/awk -F" "  '{ print $8 }')
timehr=$(echo $time | /usr/xpg4/bin/awk -F: '{print $1}')
timemin=$(echo $time | /usr/xpg4/bin/awk -F: '{print $2}')
while :
do
   chk_time=$(ls -l /home/dg/sm.ini | /usr/xpg4/bin/awk -F" "  '{ print $8 }')
   chk_timehr=$(echo $chk_time | /usr/xpg4/bin/awk -F: '{print $1}')
   chk_timemin=$(echo $chk_time | /usr/xpg4/bin/awk -F: '{print $2}')
if [ "$chk_timehr" != "$timehr" ] && [ "$chk_timemin" != "$timemin" ]
   then
     echo "/home/dg/SM/SMfile"
      sleep 5
      echo "/home/dg/SM/SMomAlarm"
   fi
   sleep 5  # 5sec wait time
done

pls help me
# 4  
Old 04-23-2011
Try this

Code:
#!/bin/bash
while :
do
   chk_time=$(ls -l run | awk -F" "  '{ print $8 }')
   chk_timehr=$(echo $chk_time | awk -F: '{print $1}')
   chk_timemin=$(echo $chk_time | awk -F: '{print $2}')
   if [ "$chk_timehr" != "$timehr" ] || [ "$chk_timemin" != "$timemin" ]
   then
     time=$(ls -l run | awk -F" "  '{ print $8 }')
     timehr=$(echo $time | awk -F: '{print $1}')
     timemin=$(echo $time | awk -F: '{print $2}')
     echo "/home/dg/SM/SMfile"
     sleep 5
     echo "/home/dg/SM/SMomAlarm"
   fi
   sleep 5  # 5sec wait time
done

regards,
Ahamed
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Shell Script | Parse log file after a given date and time stamp

I am developing one script which will take log file name, output file name, date, hour and minute as an argument and based on these inputs, the script will scan and capture all the error(s) that have been triggered from a given time. Example: script should capture all the error after 13:50 on Jan... (2 Replies)
Discussion started by: ROMA3
2 Replies

2. Shell Programming and Scripting

Check file time stamp

Hi, I need help to read file in a directory on basis of time stamp. e.g. If file access in last 2 minutes it should not be copy to remote directory. Below is my script. #!/bin/ksh DATE=`date +"%Y-%m-%d_%H%M"` SEPARATER=" " exec < out_interfaces.cfg while read source_path... (10 Replies)
Discussion started by: qamar.alam
10 Replies

3. UNIX for Dummies Questions & Answers

Run a cronjob only when a file is modified?

Hello, I am new to cron. I have a cronjob that updates a dataset in a 3rd party application. The contents of this dataset come from a text file, which is updated irregularly. Currently my cronjob runs once every week, to update this dataset (irrespective of whether the file was updated or not).... (7 Replies)
Discussion started by: ad23
7 Replies

4. Shell Programming and Scripting

file time stamp

Hi All, I am facing small problem. i want to print file time stamp on which date file has placed in the server. i have given some code but its not giving the year. any help appreciated. regards rajesh. (4 Replies)
Discussion started by: rajesh_pola
4 Replies

5. Emergency UNIX and Linux Support

Is there any way to set the files modified date and stamp to last modifies time?

Actually i did modification in a file on server by mistake, now its showing current time stamp, is there any way to set the files modified date and stamp to last modifies time. Please advice here.Thanks in advance.:b: (7 Replies)
Discussion started by: saluja.deepak
7 Replies

6. Shell Programming and Scripting

creating a file with time stamp

Hi guys, Here my scenario is to find the files of previous days if the previous day load had not done. for that i created a file with time stamp and this file is created after the load completes. so every dau i search for the this file with previous days time stamp. i want to create a file... (1 Reply)
Discussion started by: apple2685
1 Replies

7. Shell Programming and Scripting

Change time stamp of a file

Hi, As i know , we can change the time stamp of a file by touch command, i did change in a file and it is looking as given # ls -l abcd -rw-r--r-- 1 batsoqa sicusers 0 Feb 17 2010 abcd actually i want to see the output like this -rw-r--r-- 1 batsoqa sicusers ... (3 Replies)
Discussion started by: apskaushik
3 Replies

8. Shell Programming and Scripting

Changing File Time Stamp (Bash Script)

I need some help recovering from a "slight" screwup. We just moved 3 TB of data from one RAID Array to another. Low lever archive files. This was done with a regular cp (for some reason) and now we have lost all the timestamps on the files, and we urgently need to get the timestamps back on these... (7 Replies)
Discussion started by: chj
7 Replies

9. UNIX for Dummies Questions & Answers

Run a script if file modified in last 10 min

Hi, I want to check if a file is modified or not in the last 10 mins and run a script if so. Thanks (8 Replies)
Discussion started by: krabu
8 Replies

10. UNIX for Dummies Questions & Answers

File date and time stamp

I have to capture the creation date and time stamp for a file. The ls command doesn't list all the required information. I need year, month, day, hour, minute and second. Any ideas... (1 Reply)
Discussion started by: Xenon
1 Replies
Login or Register to Ask a Question