Segregate files based on the time they are created


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Segregate files based on the time they are created
# 1  
Old 04-04-2016
Oracle Segregate files based on the time they are created

Hi All,

I have scenario where I need to zip huge number of DB audit log files newer than 90 days and delete anything older than that. If the files are too huge in number,zipping will take long time and causing CPU spikes. To avoid this I wanted to segregate files based on how old they are and then zip them.

Below is the code that i have written to achieve the same:

Code:
cnt=`ls -l | wc -l`
if [ cnt -gt 10000 ] ;
w=80
while [ $w -gt 9 ]
do
mkdir -p mv2SA/$ {w}
find . -name "*.aud" -type f -mtime +${w} -exec mv {} mv2SA/${w}\;
w=$((w-10))
done
fi


If i have file count greater than 10000, I will create multiple directories and move the files into them based on their age.

All 80 days older files should go to mv2SA/80
All 70 days older files should go to mv2SA/70
.
.
.
All 10 days older files should go to mv2SA/10


But its not working as intended, all the files going to mv2SA/80 directory only. Rest all directories are remaining empty.


Can you guys help in segregating the files into multiple directories.


Note: Looking for a solution which works on both HPUX & Linux Systems.

Regards,
Veeresham
# 2  
Old 04-04-2016
Does your shell (which you fail to mention) allow for "arithmetic evaluation"? And, looking at your code, I doubt any of the directories are being created.
A few questions regarding the overall logics:
- Will this be run automatically (cron?)?
- How often?
- Are you aware that depending on when you run the script, files will end up in unpredictable locations?
# 3  
Old 04-04-2016
Also, along with RudiC's questions:
- if is followed by then, which is followed by statements and then a fi
- Variable declaration does not need $ ; but variable usage needs a $ in front of it so [ $cnt -gt 10000 ] instead of [ cnt -gt 10000 ]
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Files created on specific time

Hello Gurus, I am facing one issue to get a file for a specific time. There are about 300 files created between 6.30 pm to 7.15 pm everyday. Now I wanted only the file which is created on 6.45pm. No other files required. I have used "find" command to get the files, but not getting the expected... (3 Replies)
Discussion started by: pokhraj_d
3 Replies

2. UNIX for Dummies Questions & Answers

Find the count of files by last created date based on the given date range

My unix version is IBM AIX Version 6.1 I tried google my requirement and found the below answer, find . -newermt “2012-06-15 08:13" ! -newermt “2012-06-15 18:20" But newer command is not working in AIX version 6.1 unix I have given my requirement below: Input: atr files: ... (1 Reply)
Discussion started by: yuvaa27
1 Replies

3. Shell Programming and Scripting

Copy files based on last created date

Hi, I have a requirement to copy files from a windows network drive to a Linux server using shell script based on the last created date. Ex: FileName CreatedDate/Time F1 05-01-2012 3:00 PM F2 05-01-2012 3:15 PM F3 05-01-2012 2:00 PM When i run the shell script... (1 Reply)
Discussion started by: Lee_10
1 Replies

4. Shell Programming and Scripting

Display files created on particular date & time

Hi , I have BASH system & i am trying to display the files created on a particular date and time, and after displaying those files I also want to delete all those files.Can anyone of you help me out for this............. Thanx Original post contents restored... Please do not erase the question... (3 Replies)
Discussion started by: rakeshtomar82
3 Replies

5. Shell Programming and Scripting

Removal of files/folders created during a period of time

Hi, I have some folders (containing files) which gets created daily and names start with 'TT_' . I would like to remove these folders every month end. Could you please provide me the commands and also the syntax to schedule through crontab. Thanks, Archana (3 Replies)
Discussion started by: archana.n
3 Replies

6. UNIX for Dummies Questions & Answers

How to move files based on filetype and time created?

Hi, I'm trying to improve my Unix skills and I'm wondering what is the best way to move some files based on filetype and attributes like time created? For instance, lets suppose I have a directory with many different files in it and I'd like to move all the jpgs that were created between May... (6 Replies)
Discussion started by: LuckyTommy
6 Replies

7. UNIX for Dummies Questions & Answers

Help with command to find all newly created files in a given time period

Hi all! Can someone please help me create a command to accomplish the following task. I have a parent directory called ex. /var/www/parent and it has a bunch of sub-directories called /var/www/parent/1, var/www/parent/1/xyz/ and etc. What I would like to do is to count the number of files... (2 Replies)
Discussion started by: bbzor
2 Replies

8. Shell Programming and Scripting

segregate the file based on matching patterns

print 'test' SETUSER 'dbo' go create proc abc as /Some code here/ go SETUSER go print 'test1' SETUSER 'dbo' go Create Procedure xyz as /some code here/ go SETUSER go print 'test2' SETUSER 'dbo' (2 Replies)
Discussion started by: mad_man12
2 Replies

9. Shell Programming and Scripting

Copying files created after a specified date/time

I need to write a script that copies files from one directory to another that were created after "today 6:30". This script will be NOT be ran at the same time each day. any help is appreciated. (2 Replies)
Discussion started by: jm6601
2 Replies

10. Shell Programming and Scripting

List files created between specific date and time

Hi I need to write a script to list files in a directory created within specific date and time for eg list files created between Apr 25 2007 11:00 to Apr 26 2007 18:00. and then i have to count them Any suggestions pls ? (3 Replies)
Discussion started by: jazjit
3 Replies
Login or Register to Ask a Question