Remove old files


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Remove old files
# 1  
Old 12-26-2012
Remove old files

In my redhat 5 sysem , there are many files are generated to a directory, I would like to do the housekeeping as following , move the files elder than 90 days to a specific directory , then remove the the files elder than 180 days from this specific directory ,

I have a script to do it .

Code:
find /path -mtime +90 -exec mv {} /path2 {} \;
find /path3 -mtime +90 -exec mv {} /path4 {} \;
find /path5 -mtime +90 -exec mv {} /path6 {} \;
find /path7 -mtime +180 -exec rm {}  {} \;
find /path8 -mtime +180 -exec rm {}  {} \;
find /path9 -mtime +180 -exec rm {}  {} \;

it works to do the housekeeping , however , it is not easy to maint. the script , as there are many path ( over 70 ) , therefore , there are 140 lines in the script , can advise how to write a professional script to do it ? thanks

Last edited by Scott; 12-26-2012 at 01:06 PM.. Reason: Code tags
# 2  
Old 12-26-2012
I think the best & efficient approach to handle this task is to create a cleanup rule file. A file with rules defined to maintain each directory.

To give you an idea, here I am having a rule file with following data:-
  • Directory - Directory to maintain
  • Days - Days to keep the files
  • Move - Move Flag (If set to 1 then execute mv in find command)
  • Remove - Remove Flag (If set to 1 then execute rm in find command)
  • Destination - Destination directory to move if Move Flag is set.
Code:
# --------------------------------------------------------------------- #
# Directory |   Days    |       Move    |       Remove  | Destination   #
# --------------------------------------------------------------------- #
path1   |   90          |       1       |       0       |   path2
path2   |   90          |       1       |       0       |   path4
path3   |   90          |       1       |       0       |   path5
path4   |   90          |       1       |       0       |   path6
path5   |   90          |       1       |       0       |   path7
path6   |   90          |       1       |       0       |   path8
path7   |   180         |       0       |       1       |   NA
path7   |   180         |       0       |       1       |   NA
path9   |   180         |       0       |       1       |   NA
# --------------------------------------------------------------------- #

Now you just have to write a script to read data from this pipe delimited file and run find command for each rule. It will be easy and simple if you want to modify or add a new rule because you don't have to change the code but just simply change the rule file. I hope this helps.
# 3  
Old 12-26-2012
Use this script:
Code:
#!/bin/ksh     ## Note: #!/bin/bash also works
while read SRC DEST
do
   find $SRC -mtime +90 -exec mv {} ${DEST}/{} \;
   find ${DEST} -mtime +180 -exec -rm {} \;
done < /path/to/mv90.txt

Next create one file:
mv90.txt with each line having 2 directory names - source dir and dest dir

Code:
path1  path2

To maintain just edit the file changing or removing directories as needed.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Solaris

Command to remove existing files in the tar files in Solaris 10

Hi, I am using solaris 10 OS.Please help me out with the commands needed in below two scenarios. 1)How to delete the existing files in the tar file. suppose i have a main tarfile named application.tar and it contains a file called ingres.tar. what is the command to remove ingres.tar... (2 Replies)
Discussion started by: muraliinfy04
2 Replies

2. UNIX for Dummies Questions & Answers

Remove files by name

Hi, I have multiple xml files and named 1233__AAA__12.xml 1234__AAA__12.xml 2125__AAA__13.xml 2127__AAA__13.xml and I want to delete or to remove only these with the hightest ID e.g. files 1234__AAA__12.xml and 2127__AAA__13.xml. Could you tell me how can i do that? Is there any script?... (5 Replies)
Discussion started by: corfuitl
5 Replies

3. Shell Programming and Scripting

Remove files

I know that rm -i, asks a user before removing a file. What I need to accomplish is removing files from a different directory without switching to that directory. Example: I'm currently in directory dog and I want to remove all the files of a certain name in directory cat, but from within the dog... (5 Replies)
Discussion started by: smiley76112
5 Replies

4. UNIX for Advanced & Expert Users

how to remove the files along with its link files

How to remove the files along with its link files either hardlink or softlink? (1 Reply)
Discussion started by: Ramesh_srk
1 Replies

5. Shell Programming and Scripting

compare two files and to remove the matching lines on both the files

I have two files and need to compare the two files and to remove the matching lines from both the files (4 Replies)
Discussion started by: shellscripter
4 Replies

6. Shell Programming and Scripting

need to remove a range of files

How come I remove the range of file from update.0001* to update.0002* and not other files. (11 Replies)
Discussion started by: gsiva
11 Replies

7. Shell Programming and Scripting

remove files other than selected

I wanna remove a set files other than some selected files. Eg. :rolleyes::rolleyes::rolleyes: a directory contains n files like test1.dat test2.dat test3.dat test4.dat out5.dat out1.dat i wanna remove all files which doesnot name like *test* I want to use this in shell... (22 Replies)
Discussion started by: freakygs
22 Replies

8. Shell Programming and Scripting

how to remove files with a date

I have files with a date name ( 20060506 20060507 etc..) that i want to remove because it keeps filling up the directory. Can someone please help me with a script to remove those date files. i would like to keep atleast 14 days worth from the current date. I hope i have explained it clearly and... (5 Replies)
Discussion started by: justintime
5 Replies

9. UNIX for Advanced & Expert Users

How To Remove files starting with -

In Unix/Linux when u create a file starting with a - e.g.-file then when u try to remove or rename it, it is not possible. e.g. rm -file . when we give this command rm assumes to be its option rather than its argument. Same is the case when this filename is given as an argument to mv or cat and... (2 Replies)
Discussion started by: rahulrathod
2 Replies

10. Shell Programming and Scripting

remove files

Hi, How do i remove all the files that are present in the directory.. I know a way of doing this..that is by using *.* .. But my directory has executables or some files without extensions... So they are not getting deleted. What do i do to remove all of them? Thanks, Nisha (7 Replies)
Discussion started by: Nisha
7 Replies
Login or Register to Ask a Question