Deleting dated log files whihc are older than an year


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Deleting dated log files whihc are older than an year
# 1  
Old 10-19-2015
Deleting dated log files whihc are older than an year

Hi. There is a process which creates log files in the below naming format processname.20140425.log processname1.20140425.log And in this path along with these logs there are other files which have the timestamp from 2012 and i want to have a script in place to delete only the above log files which are older than an year. please help me with a script please.
# 2  
Old 10-19-2015
Any attempts from your side? Did you consider searching these fora?
# 3  
Old 10-19-2015
i tried using the find command but it is showing all the .log files.. including files in subdirectories which is not required. thats where i am struck
# 4  
Old 10-19-2015
man find:
Quote:
-prune True; if the file is a directory, do not descend into it.
# 5  
Old 10-19-2015
sorry.. i did not understand this..

i did a grep to list the valid files which need to be checked whether they are greater than an year and if greater delete them. need help here

Code:
 ls -ltr | grep 'Ft*.*.log
-rw-r--r-- 1 root root     250407 Apr 25  2014 Ftprocessname.20140425.log
-rw-r--r-- 1 root root  29600684 Apr 25  2014 Ftprocessname1.20140425.log
-rw-r--r-- 1  root root   2542462 Apr 25  2014 Ftprocessname2.20140425.log
-rw-r--r-- 1  root root   1324375 Apr 25  2014 processname1.20140425.log
-rw-r--r-- 1  root root   5593542 Apr 25  2014 processname2.20140425.log
-rw-r--r-- 1  root root   5593542 Apr 25  2014 processname1.20140425.log
....
.
.
.
.


Last edited by nanz143; 10-19-2015 at 01:22 PM..
# 6  
Old 10-19-2015
Quote:
Originally Posted by nanz143
sorry.. i did not understand this..

i did a grep to list the valid files which need to be checked whether they are greater than an year and if greater delete them. need help here

Code:
 ls -ltr | grep 'Ft*.*.log
-rw-r--r-- 1 root root     250407 Apr 25  2014 Ftprocessname.20140425.log
-rw-r--r-- 1 root root  29600684 Apr 25  2014 Ftprocessname1.20140425.log
-rw-r--r-- 1  root root   2542462 Apr 25  2014 Ftprocessname2.20140425.log
-rw-r--r-- 1  root root   1324375 Apr 25  2014 processname1.20140425.log
-rw-r--r-- 1  root root   5593542 Apr 25  2014 processname2.20140425.log
-rw-r--r-- 1  root root   5593542 Apr 25  2014 processname1.20140425.log
....
.
.
.
.

Even if you had matching single quotes in your grep command, the last three lines shown in your output would not be there because a line that does not contain the string Ft will not match the BRE passed to grep as 'Ft*.*.log'. So how did you really get the output above???

Is the one year you're talking about supposed to be based on the time the file was last modified (as implied by ls -ltr) or by the date stamp in the file's name?

If you want to use the last modified time:
Code:
find . -name 'Ft*.*.log' -mtime +364 -exec echo rm {} +

should come close to what you want with find.

If you want to use the date stamp in the file's name, try something like:
Code:
#!/bin/ksh
EDD=$(($(date +%Y%m%d) - 10000))
printf 'Looking for files no newer than %s\n' "$EDD"
for fn in Ft*.*.log
do	FD=${fn%.*}
	FD=${FD##*.}
	if [ "$FD" -le $EDD ]
	then	echo rm "$fn"
	fi
done

I used the Korn shell for this, but it will work with any POSIX-conforming shell (or any shell that is based on Bourne shell syntax that supports arithmetic substitutions).

To actually remove the files instead of just get a list of the commands that will be used, remove the echo in both scripts after you have convinced yourself that that script is selecting the files you want to delete correctly.
This User Gave Thanks to Don Cragun For This Post:
# 7  
Old 10-20-2015
Hi Don,

Please ignore that. i have renamed the original files for few reasons and i think i missed to rename these sorry for that confusion.

regarding
Code:
find . -name 'Ft*.*.log' -mtime +364 -exec echo rm {} +

this will remove all the logs more than 364 days, including the the ones in sub directories which is not expected.

I will try with the ksh script you gave and get back to you.. Thanks much!!
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Need help deleting files one week older

Hi, I need to delete *.bad files which are 1 week old. How can I achieve that. I tried doing through below script but it deletes all the files. find ./ -mtime +7 -exec rm *.bad {} \; The below one works but i want to delete only files with .bad extension find . -mtime +7 | xargs rm (2 Replies)
Discussion started by: Gangadhar Reddy
2 Replies

2. Shell Programming and Scripting

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... (2 Replies)
Discussion started by: ooilinlove
2 Replies

3. Shell Programming and Scripting

Delete files older than 1 year through FTP

Hi All, I want to login to a remote server using FTP command and then check for files older than 1 year and delete those files. Please let me know how can i achieve this using Unix Commands. Thanks in Advance, (10 Replies)
Discussion started by: HemaV
10 Replies

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

5. Shell Programming and Scripting

deleting files older than 7 days

Hi Guys, I am new to unix I am looking for a script to delete files older than 7 days but i also want to exclude certain directories (like arch,log .....) and also some files with extensions ( like .ksh, .ch, ..............) Thanks (1 Reply)
Discussion started by: MAYAMAYA0451
1 Replies

6. UNIX for Advanced & Expert Users

Deleting older files of a particular type

hi This should be easy but i'm obviously missing something obvious. :) I'm looking to delete files from yesterday and older of extension .txt and there a range of subfolders with these files in them. The command runs but doesn't delete anything. SUSE 10. find /testfolder -maxdepth 2 -type f... (6 Replies)
Discussion started by: cmap
6 Replies

7. UNIX for Dummies Questions & Answers

Deleting specfic files older than N days

Hello, I am trying to delete specific files older than 7 days that start with FSTRnnnn (nnnn=sequnce number) from /home/users/userdir I.E cd home/users/userdir ll FSTR0001 Jul 8 14:20 FSTR0002 Jul 6 12:01 FSTR0003 May 25 09:45 FSTR0004 April 2 17:20 MSTR0034 Jul 6 12:45... (3 Replies)
Discussion started by: eurouno
3 Replies

8. Shell Programming and Scripting

Deleting files older than 7 days

Hi Guys, I want to delete folder/files older than 7 days. Im using the command below. find /test/test1 -mtime +7 -print0 | xargs -0 rm -Rf /test/test1/* which works ok, but it deletes the test1 folder as well which i dont want. The test1 folder will have a list of sub-folders which in... (4 Replies)
Discussion started by: shezam
4 Replies

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

10. Shell Programming and Scripting

Deleting files older than a given date

Hi all, I want to delete all files in a directory which are older than a given date. I thought of doing it by creating a file by the required date by using touch command. And then i would use find command on that file and try to find files older than that. I searched the man and found a... (3 Replies)
Discussion started by: rajugp1
3 Replies
Login or Register to Ask a Question