How to tail real time file Generated every hour?


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting How to tail real time file Generated every hour?
# 1  
Old 04-29-2012
How to tail real time file Generated every hour?

Hi Guys,

I am developing a script to monitor log file Generated every hour.
When creating a new file scripts not working.

My Code . I want to monitor GatewayTransaction.yyyymmdd-hh.log
Code:
while true; do newdate=$(date '+%Y%m%d') ; nowdate=$(date '+%Y%m%d-%H.log'); tail -f /usr/home/ABCD/atimo/log/$newdate/option/OP2/GatewayTransaction.$nowdate ;sleep 5 ; done ;

Ex Log name
Code:
-rw-r--r--   1 bewio   adlioj   85730700 Apr 29 08:59 GatewayTransaction.20120429-08.log
-rw-r--r--   1 bewio   adlioj   13162747 Apr 29 09:59 GatewayDR.20120429-09.log
-rw-r--r--   1 bewio   adlioj   45739723 Apr 29 09:59 GatewayTransaction.20120429-09.log
-rw-r--r--   1 bewio   adlioj     25650 Apr 29 10:31 GatewayException.20120429.log
-rw-r--r--   1 bewio   adlioj      1741 Apr 29 10:31 GatewayNegativeResponse.20120429.log
-rw-r--r--   1 bewio   adlioj    195235 Apr 29 10:36 GatewayCIMDDebug.20120429-10.log
-rw-r--r--   1 bewio   adlioj   11630362 Apr 29 10:36 GatewaySMPPDebug.20120429-10.log
-rw-r--r--   1 bewio   adlioj   17897250 Apr 29 10:36 GatewayDR.20120429-10.log
-rw-r--r--   1 bewio   adlioj   73384961 Apr 29 10:36 GatewayTransaction.20120429-10.log


Please Help me or guide line.

Last edited by fpmurphy; 04-30-2012 at 12:50 AM.. Reason: removed large font
# 2  
Old 04-29-2012
Try this:
Code:
while true; do newdate=`date '+%Y%m%d'`; nowdate=`date '+%Y%m%d-%H.log'`; tail -f /usr/home/ABCD/atimo/log/$newdate/option/OP2/GatewayTransaction.$nowdate; sleep 5; done;

# 3  
Old 04-29-2012
It Not Work.
# 4  
Old 04-29-2012
What does not work?
# 5  
Old 04-29-2012
Original post compared with suggested change from @spacebar:
Quote:
# Original post
while true; do newdate=$(date '+%Y%m%d') ; nowdate=$(date '+%Y%m%d-%H.log'); tail -f /usr/home/ABCD/atimo/log/$newdate/option/OP2/GatewayTransaction.$nowdate ;sleep 5 ; done ;

# Suggested change from @spacebar
while true; do newdate=`date '+%Y%m%d'`; nowdate=`date '+%Y%m%d-%H.log'`; tail -f /usr/home/ABCD/atimo/log/$newdate/option/OP2/GatewayTransaction.$nowdate; sleep 5; done;
The O/P stated that the original problem was "When creating a new file scripts not working".
Both of the above command sequences have this problem (the suggested change just makes an irrelevant change to the date command). They will both go wrong when the application starts a new file because the "tail -f" will lose context.

The big problem is because the script is using "tail -f".
There is no "quick and easy" way round this script design issue except to avoid "tail -f".

My usual approach to log file monitoring is to issue "wc -l" to find out the number of lines in the logfile, record that number in a workfile, then after the time interval calculate the new number of lines, calculate the difference and then issue "tail -n". This is a simplified view because we need to take account of the application starting a new file and will utililise the timestamp on our record file to detect the new file. The simplest approach to the "first time" condition is to do nothing except record the current state. This means that the logfile monitoring script needs to start running exactly one time increment earlier than the first report.


Ps. It always helps to know what Operating System and version you are running and what Shell you prefer.

Last edited by methyl; 04-29-2012 at 03:31 PM.. Reason: correct some ambiguity
# 6  
Old 04-30-2012
I don't know which shell you want to use; But if using 'ksh' and you always want to see the end of the file that was last modified you should be able to use something like this:

Code:
#!/bin/ksh
while true
  do
    newdate=`date '+%Y%m%d'`
    for x in `ls -tr /usr/home/ABCD/atimo/log/${newdate}/option/OP2/GatewayTransaction.*`
    do
      file=`echo ${x}`
    done
    tail -f $file
  sleep 5
  done

hth
# 7  
Old 04-30-2012
Some tails have a "-F" (retry) option:
Code:
     -F      The -F option implies the -f option, but tail will also check to see if the file
             being followed has been renamed or rotated.  The file is closed and reopened when
             tail detects that the filename being read from has a new inode number.

Login or Register to Ask a Question

Previous Thread | Next Thread

8 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Archiving or removing few data from log file in real time

Hi, I have a log file that gets updated every second. Currently the size has grown to 20+ GB. I need to have a command/script, that will try to get the actual size of the file and will remove 50% of the data that are in the log file. I don't mind removing the data as the size has grown to huge... (8 Replies)
Discussion started by: Souvik Patra
8 Replies

2. Shell Programming and Scripting

Grep in a log file within a time range (hour)

Hi, im trying to write a grep script that returns me the last inputs added in the last hour in the log file. Literally i have nothing yet but: grep 'Line im looking for' LOGFILE.log | tail -1 this only gives me the last input, but no necessarily from the last hour. Help Please. (4 Replies)
Discussion started by: blacksteel1988
4 Replies

3. Shell Programming and Scripting

How do i use tail & grep in real time here??

Hi I have a file which is updated very frequently. Where in i wanted to use tail -f command in the script and wanted to grep for a particular word. But the issue is when i use tail -f filename|grep "word" ... it will show me blank until the word is found in the real time. if it shows... (13 Replies)
Discussion started by: nikhil jain
13 Replies

4. Shell Programming and Scripting

How to pick only the files which are generated in one hour?

Hello Masters, I need one help. I want to copy the files which are continuously generating on one server. But this would be on hourly basis. e.g. -rw-rw-r-- 1 akore akore 0 Feb 12 03:20 test1.log -rw-rw-r-- 1 akore akore 0 Feb 12 03:42 test2.log -rw-rw-r-- 1 akore akore 0 Feb 12 04:22... (2 Replies)
Discussion started by: akore83
2 Replies

5. Shell Programming and Scripting

How to convert 24 hour time to 12 hour timing?

Hi friends, I want to convert 24 hour timing to 12 hour please help me... my data file looks like this.. 13-Nov-2011 13:27:36 15.32044 72.68502 13-Nov-2011 12:08:31 15.31291 72.69807 16-Nov-2011 01:16:54 15.30844 72.74028 15-Nov-2011 20:09:25 15.35096 ... (13 Replies)
Discussion started by: nex_asp
13 Replies

6. Shell Programming and Scripting

How to tail -f real time file.

How to tail -f real time file. I want to tail file created last time. The server is gen new file Always. . An example file. -rw-r--r-- 1 shinnie tiituck 251M Oct 18 05:39 20111018_00.log -rw-r--r-- 1 shinnie tiituck 251M Oct 18 11:18 20111018_01.log -rw-r--r-- 1 shinnie tiituck... (3 Replies)
Discussion started by: ooilinlove
3 Replies

7. UNIX for Dummies Questions & Answers

Live/real-time text-file updates in terminal

I want to have a terminal open and have something like a "repeating cat" command running in it for a certain text file (in particular /var/log/system.log). So my terminal will scan or cat the text file every so often or whenever the text file system.log gets written to by the system, it will... (1 Reply)
Discussion started by: guitarscn
1 Replies

8. Shell Programming and Scripting

Real time log file redirect

Hi all, i would like to write the shell script program, it can monitor the access_log "real time" when the access_log writing the line contain "abcdef" the program will be "COPY" this line into a file named "abcdef.txt", do the same thing if the contain "123456" "COPY" it into a file named... (3 Replies)
Discussion started by: eric_wong_ch
3 Replies
Login or Register to Ask a Question