How to compare a file by its timestamp and store in a different location whenever timestamp changes?


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers How to compare a file by its timestamp and store in a different location whenever timestamp changes?
# 1  
Old 07-23-2011
How to compare a file by its timestamp and store in a different location whenever timestamp changes?

Hi All,
I am new to unix programming. I am trying for a requirement and the requirement goes like this.....

I have a test folder. Which tracks log files. After certain time, the log file is getting overwritten by another file (randomly as the time interval is not periodic). I need to preserve all the log files in a different folder with the timestamp before it gets overwritten.

Ex:
The log file contents and size varies with time
test/test1.log - 07/22/2011 13:01:11 ; 2 MB
test/test1.log - 07/22/2011 13:27:12 ; 2 MB
test/test1.log - 07/22/2011 14:27:09 ; 1.5 MB

I need to create a archive folder and preserve all these 3 files with their time stamp.

archive/test1.log_20110722130111
archive/test1.log_20110722132712
archive/test1.log_20110722142709


Any help on this is highly appreciated..

-Saravana
# 2  
Old 07-23-2011
Assuming that the flavour of UNIX you are using has a stat command, then something like this could be used to create your filename:

Code:
log=/var/log/foo.log
dt=$(stat -c %Y $log |awk '{print  strftime( "%Y%m%d%H%M%S", $1 )}')  #make the datestamp portion in YYYYMMDDHHMMSS format
archive=/archive/log/foo_$dt.log

The stat command generates the epoch timestamp for the named file and the awk script is used to format it into something useful. The %y format supported by stat isn't very filename friendly.

If you are using FreeBSD, then the stat command format is a wee bit different. On the 6.2 BSD system I have it's: stat -f %a file-name

There is a caution in the man page for stat on Linux that states that a shell may implement an internal stat command that will override the binary in /bin
# 3  
Old 07-25-2011
Thanks Agama...This helped a lot...
thank you so much....
 
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Grep lines between last hour timestamp and current timestamp

So basically I have a log file and each line in this log file starts with a timestamp: MON DD HH:MM:SS SEP 15 07:30:01 I need to grep all the lines between last hour timestamp and current timestamp. Then these lines will be moved to a tmp file from which I will grep for particular strings. ... (1 Reply)
Discussion started by: nms
1 Replies

2. Shell Programming and Scripting

AIX : Need to convert UNIX Timestamp to normal timestamp

Hello , I am working on AIX. I have to convert Unix timestamp to normal timestamp. Below is the file. The Unix timestamp will always be preceded by EFFECTIVE_TIME as first field as shown and there could be multiple EFFECTIVE_TIME in the file : 3.txt Contents of... (6 Replies)
Discussion started by: rahul2662
6 Replies

3. Shell Programming and Scripting

To check timestamp in logfile and display lines upto 3 hours before current timestamp

Hi Friends, I have the following logfile. Currently time in india is 07/31/2014 12:33:34 and i have the following content in logfile. I want to display only those entries which contain string 'Exception' within last 3 hours. In this case, it would be the last line only I can get the... (12 Replies)
Discussion started by: srkmish
12 Replies

4. Shell Programming and Scripting

Identifying files with a timestamp greater than a given timestamp

I need to be able to identify files with file timestamps greater than a given timestamp. I am using the following solution, although it appears to compare files at the "seconds" granularity and I need it at the milliseconds. When I tested my solution, it missed files that had timestamps... (3 Replies)
Discussion started by: nkm0brm
3 Replies

5. Shell Programming and Scripting

Getting a relative timestamp from timestamp stored in a file

Hi, I've a file in the following format 1999-APR-8 17:31:06 1500 3 45 1999-APR-8 17:31:15 1500 3 45 1999-APR-8 17:31:25 1500 3 45 1999-APR-8 17:31:30 1500 3 45 1999-APR-8 17:31:55 1500 3 45 1999-APR-8 17:32:06 1500 3 ... (1 Reply)
Discussion started by: vaibhavkorde
1 Replies

6. Shell Programming and Scripting

Compare current time to timestamp on a file

I'm trying to compare 2 dates between current time and the timestamp on a file. The date format is mmdd Both return Apr 1 but when using if statement line 11: Apr 1: command not found error is returned #!/bin/sh log="DateLog" Current_Date=`date +%b%e` Filepmdate=`ls -l /file.txt |... (1 Reply)
Discussion started by: cillmor
1 Replies

7. Shell Programming and Scripting

Compare file timestamp with current date. Diff must be 1 hour.

Hello, I've created the script below to compare the content of two files with a delay of an hour. After an hour, the lines that exist in both files, will be printed and executed. The script now uses a counter to countdown 50 minutes. But what I would prefer is to check the file timestamp of... (3 Replies)
Discussion started by: taipan
3 Replies

8. AIX

how to grep and compare timestamp in a file with the current date

I want to read a log file from a particular location.In the log file each line starts with timestamp.I need to compare the timestamp in the logfile with the current date.If the timpestamp in the log file is less than 4 hours then i need to read the file from that location.Below is the file... (1 Reply)
Discussion started by: achu
1 Replies

9. AIX

how to grep and compare timestamp in a file with the current date

I want to read a log file from a particular location.In the logfile , lines contains timestamp.I need to compare the timestamp in the logfile with the current date.If the timpestamp in the log file is less than 4 hours then i need to read the file from that location.Below is the file format.Please... (1 Reply)
Discussion started by: achu
1 Replies

10. Shell Programming and Scripting

store timestamp in a variable

I am new to Unix shell Script _________________________ db2 connect to r2pdev user bmwdevup using summer08 >>$monlog # get the current timestamp from SYSIBM.SYSDUMMY1 currenttimestamp="" echo "Run SQL select current timestamp from SYSIBM.SYSDUMMY1 with ur" >>$monlog db2 "select current... (8 Replies)
Discussion started by: regnumber
8 Replies
Login or Register to Ask a Question