Deleting Files Older than 1 hours.


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Deleting Files Older than 1 hours.
# 1  
Old 01-26-2013
Deleting Files Older than 1 hours.

How to Deleting Files Older than 1 hours.
Base on SunOS.

this file gen every 1 min.
Code:
-rw-r--r--   1 nobody nobody      4960 Jan 27 02:02 23_201301270201.log
-rw-r--r--   1 nobody amudu      2325 Jan 27 02:03 33_201301270202.log
-rw-r--r--   1 nobody amudu      3255 Jan 27 02:03 32_201301270202.log
-rw-r--r--   1 nobody nobody      3720 Jan 27 02:03 22_201301270202.log
-rw-r--r--   1 nobody nobody      3410 Jan 27 02:03 23_201301270202.log
-rw-r--r--   1 nobody amudu      2635 Jan 27 02:04 33_201301270203.log
-rw-r--r--   1 nobody amudu      2015 Jan 27 02:04 32_201301270203.log
-rw-r--r--   1 nobody nobody      3410 Jan 27 02:04 22_201301270203.log
-rw-r--r--   1 nobody nobody      2790 Jan 27 02:04 23_201301270203.log
-rw-r--r--   1 nobody amudu      1860 Jan 27 02:05 33_201301270204.log
-rw-r--r--   1 nobody nobody      2635 Jan 27 02:05 22_201301270204.log
-rw-r--r--   1 nobody amudu      1395 Jan 27 02:05 32_201301270204.log
-rw-r--r--   1 nobody nobody      2635 Jan 27 02:05 23_201301270204.log
-rw-r--r--   1 nobody amudu      1550 Jan 27 02:06 33_201301270205.log
-rw-r--r--   1 nobody amudu      1550 Jan 27 02:06 32_201301270205.log
-rw-r--r--   1 nobody nobody      3875 Jan 27 02:06 22_201301270205.log
-rw-r--r--   1 nobody nobody      2325 Jan 27 02:06 23_201301270205.log
-rw-r--r--   1 nobody nobody      1085 Jan 27 02:07 22_201301270206.log
-rw-r--r--   1 nobody amudu      2170 Jan 27 02:07 32_201301270206.log
-rw-r--r--   1 nobody amudu      2325 Jan 27 02:07 33_201301270206.log
-rw-r--r--   1 nobody nobody      3756 Jan 27 02:07 23_201301270206.log
-rw-r--r--   1 nobody nobody      2015 Jan 27 02:08 22_201301270207.log
-rw-r--r--   1 nobody amudu      4030 Jan 27 02:08 33_201301270207.log
-rw-r--r--   1 nobody amudu      1705 Jan 27 02:08 32_201301270207.log
-rw-r--r--   1 nobody nobody      2938 Jan 27 02:08 23_201301270207.log
-rw-r--r--   1 nobody nobody       620 Jan 27 02:09 22_201301270208.log
-rw-r--r--   1 nobody amudu      3720 Jan 27 02:09 33_201301270208.log
-rw-r--r--   1 nobody amudu      2790 Jan 27 02:09 32_201301270208.log
-rw-r--r--   1 nobody nobody      2170 Jan 27 02:09 23_201301270208.log
-rw-r--r--   1 nobody amudu      2635 Jan 27 02:10 33_201301270209.log
-rw-r--r--   1 nobody nobody      3410 Jan 27 02:10 22_201301270209.log
-rw-r--r--   1 nobody amudu      1705 Jan 27 02:10 32_201301270209.log
-rw-r--r--   1 nobody nobody      2170 Jan 27 02:10 23_201301270209.log
-rw-r--r--   1 nobody amudu      1395 Jan 27 02:11 33_201301270210.log
-rw-r--r--   1 nobody amudu      1395 Jan 27 02:11 32_201301270210.log
-rw-r--r--   1 nobody nobody      3410 Jan 27 02:11 22_201301270210.log
-rw-r--r--   1 nobody nobody      2170 Jan 27 02:11 23_201301270210.log
-rw-r--r--   1 nobody nobody      1550 Jan 27 02:12 22_201301270211.log
-rw-r--r--   1 nobody amudu      1550 Jan 27 02:12 32_201301270211.log
-rw-r--r--   1 nobody amudu      2318 Jan 27 02:12 33_201301270211.log
-rw-r--r--   1 nobody nobody      2790 Jan 27 02:12 23_201301270211.log

# 2  
Old 01-26-2013
Here is one approach:
Code:
# Calculate previous hour time-stamp using PERL
TS=$( perl -e '@d=localtime time()-3600; printf "%4d%02d%02d%02d%02d", $d[5]+1900,$d[4]+1,$d[3],$d[2],$d[1]' )

# Touch a temporary file with the calculated time-stamp
touch -t "$TS" tmp_file

# Find files which are older than but not newer than touched file
find . -name "*.log" ! -newer tmp_file -exec ls -l {} \;

Note: Replace ls -l {} \; with rm -f {} \; if results look good.

I hope this helps.
# 3  
Old 01-26-2013
As long as you don't run it between midnight and 1am, you can also do this in ksh without needing to call perl and find (unless you also want to search subdirectories for log files to be removed):
Code:
#!/bin/ksh
set -- $(date "+%m%d %H %M")
touch -t $1$(($2 - 1))$3 timestamp.$$
for i in *.log
do      if [ "$i" -ot timestamp.$$  ]
        then    echo rm "$i"
        fi
done
rm timestamp.$$

Try it and if it looks like it does what you want, remove the echo before the rm "$i".
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

files older than few hours

Hi All I need to know the command which can be used to list the files which are 3 hours old so that it can be deleted. (3 Replies)
Discussion started by: mskalyani9
3 Replies

2. Shell Programming and Scripting

Deleting files older than 6 hours

Hi All, I am using the below script to find all the files in a folder which are older than 6 hours and delete all those files, but some how I am not getting the required output. find $HOME/Log -type f -name "*.log" -amin +360 -exec rm *.* {} \ can any one please check and let me know... (13 Replies)
Discussion started by: subhasri_2020
13 Replies

3. Shell Programming and Scripting

if condition for files older then 24 hours in direc

Hi all I have directory /tmp and i have logs are written in it every 18 to 20 hours in date format. now i need write some if condition which can find which files came into /tmp dir with name start from LOG_`date`.log in last 24 hours. can somebody help me on this. (2 Replies)
Discussion started by: tapia
2 Replies

4. Shell Programming and Scripting

Find files older than 8 hours

I need a script to find files older than 8 hours... I know i can use mmin but the same is not working...the same only support mtime... This is the script i created..but the same is only giving 1 hour old..as I have given dt_H as 1 only...but if i give 8..it can go in -(negative)..how to get the... (5 Replies)
Discussion started by: cotton
5 Replies

5. Shell Programming and Scripting

Deleting the contents of a folder older than X hours

Every day a new .zip file is uploaded to a folder and at mid-night the zip file is to be extracted into a /data/ folder, inside a date-named folder. # This should extract the contents of a zip file into the /data/ folder into a date based folder /usr/bin/unzip -a -o... (15 Replies)
Discussion started by: worchyld
15 Replies

6. AIX

how to find files older than 2 hours

I need help to find files in a directory that are older than 2 hours. Any help would be great. (3 Replies)
Discussion started by: pt14
3 Replies

7. Solaris

Deleting Files Older than 24 hours

Hi, I am using Solaris Box, I need to delete file(cookies.html) from the path(/usr/temp) which are older than 24 hours(I want in hours, not in days) Can u provide the command for the above query (7 Replies)
Discussion started by: mazhar803
7 Replies

8. Shell Programming and Scripting

removing files after 6 hours or older

What is the command to remove files that are generated 6 hours or older? The find and remove tells only how to remove if the file is one day old or more. Appreciate quick reply. Thanks (3 Replies)
Discussion started by: gthokala
3 Replies

9. UNIX for Dummies Questions & Answers

Finding only those files older than 2 hours

I need to write a program that will only remove those files that are older than 2 hours. Is there some variation of find . -mtime ? -name '*' that I can use? Thanks as always for your help. Regards, Dave :) (2 Replies)
Discussion started by: mh53j_fe
2 Replies

10. Shell Programming and Scripting

Finding files older than 2 hours

I want to write a sh script that will find files older than 2 hours and tar them. I've had a look at the find man page but can't see how to do it by hours. Help please. Thanx (1 Reply)
Discussion started by: ianf
1 Replies
Login or Register to Ask a Question