Deleting Files Older than 1 hours.

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

this file gen every 1 min.

-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

Here is one approach:

# 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.

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):

#!/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" .