script to compress files in directory that changes its name every day


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting script to compress files in directory that changes its name every day
# 1  
Old 03-28-2012
script to compress files in directory that changes its name every day

Hi all

I have the following script that should compress a file in a directory:
Code:
# compress log files older than 2 days
find /u01/easydone/DBDUMPS/*.dmp -mtime +2 -exec gzip {} \;

BUT the problem is that these files that I want to compress are inside a directory with following format:

Code:
/u01/easydone/DBDUMPS #ls -lrt
total 6
drwxr-xr-x   2 easydone   easydone      1024 Mar 25 22:22 2012-03-25
drwxr-xr-x   2 easydone   easydone      1024 Mar 26 22:21 2012-03-26
drwxr-xr-x   2 easydone   easydone      1024 Mar 27 22:21 2012-03-27

So the *.dmp files that I want to compress are inside these subdirectories.

Can you help?

Regards
# 2  
Old 03-28-2012
I think find will automatically traverse through the sub-directories and gzip the files as necessary.
# 3  
Old 03-28-2012
You will need to tweak your find command a little. You are currently looking in the directories given by expanding /u01/easydone/DBDUMPS/*.dmp but I fancy that actually your files are called *.dmp

What you need is something more like this:-
Code:
find /u01/easydone/DBDUMPS -type f -name "*.dmp" -mtime +2 -exec gzip {} \;

The explanation is:-
  1. Start searching from /u01/easydone/DBDUMPS
  2. Find only files
  3. Only match files that are in the format *.dmp (use " to prevent expansion on the command line)
  4. Only match files that were last updated over two days ago
  5. For each match, execute the gzip command with the file as a parameter.

I hope that this helps. If you have sub-mounted filesystems that you do not want to search or there could be symbolic links that you don't want to follow off to other filesystems, use the -xdev flag too (see the man page for info)



Robin
Liverpool/Blackburn, UK
# 4  
Old 03-28-2012
script to compress files in directory that changes its name every day

Robin:

The files are in this format directory
Code:
/u01/easydone/DBDUMPS/2012-03-27

and today will be created a "2012-03.28" directory.
The *.dmp is the extension of the files I want to compress:
Code:
/u01/easydone/DBDUMPS/2012-03-27 #ls -lrt
total 12936488
-rw-r--r--   1 easydone   easydone      1991 Mar 27 22:00 SESSION-2012-03-27-22-00.log
-rw-r--r--   1 easydone   easydone     41984 Mar 27 22:00 SESSION-2012-03-27-22-00.dmp
-rw-r--r--   1 easydone   easydone      8629 Mar 27 22:21 EDIM-2012-03-27-22-00.log
-rw-r--r--   1 easydone   easydone   2586354688 Mar 27 22:21 EDIM-2012-03-27-22-00.dmp
-rw-r--r--   1 easydone   easydone     10531 Mar 27 23:25 SFEC-2012-03-27-22-21.log
-rw-r--r--   1 easydone   easydone   4036493312 Mar 27 23:25 SFEC-2012-03-27-22-21.dmp
mcel-dunn02[253]/u01/easydone/DBDUMPS/2012-03-27 #

But when I do a ls for testing:
Code:
]/u01/easydone/DBDUMPS #find /u01/easydone/DBDUMPS -type f -name "*.dmp" -mtime +1 -exec ls -lrt {} \;
-rw-r--r--   1 easydone   easydone   2580219904 Mar 25 22:22 /u01/easydone/DBDUMPS/2012-03-25/EDIM-2012-03-25-22-00.dmp
-rw-r--r--   1 easydone   easydone   4033813504 Mar 25 23:35 /u01/easydone/DBDUMPS/2012-03-25/SFEC-2012-03-25-22-22.dmp

But if I do:
Code:
/u01/easydone/DBDUMPS #find /u01/easydone/DBDUMPS -type f -name "*.dmp" -mtime +2 -exec ls -lrt {} \;
mcel-dunn02[256]/u01/easydone/DBDUMPS #

I got nothing.
What I really want to compress the previous day files..
# 5  
Old 03-28-2012
That would suggest two things. Either:-
There are no files
  1. older that two days
  2. The files are already compressed and therefore no longer match the "*.dmp" criteria, they are likely "*.dmp.gz" instead.

Can you confirm? In either case, it's telling you that there is nothing to do.

If you are still concerned, can you post the output from:-
Code:
cd /u01/easydone/DBDUMPS
find . -print | sort | xargs ls -ld


Thanks, in advance,
Robin
# 6  
Old 03-28-2012
its:
Code:
mcel-dunn02[256]/u01/easydone/DBDUMPS #find . -print | sort | xargs ls -ld
drwxrwxrwx   5 easydone   easydone      1024 Mar 27 23:25 .
drwxr-xr-x   2 easydone   easydone      1024 Mar 28 11:45 ./2012-03-25
-rw-r--r--   1 easydone   easydone   2580219904 Mar 25 22:22 ./2012-03-25/EDIM-2012-03-25-22-00.dmp
-rw-r--r--   1 easydone   easydone      8629 Mar 25 22:22 ./2012-03-25/EDIM-2012-03-25-22-00.log
-rw-r--r--   1 easydone   easydone      6181 Mar 25 22:00 ./2012-03-25/SESSION-2012-03-25-22-00.dmp.gz
-rw-r--r--   1 easydone   easydone      1991 Mar 25 22:00 ./2012-03-25/SESSION-2012-03-25-22-00.log
-rw-r--r--   1 easydone   easydone   4033813504 Mar 25 23:35 ./2012-03-25/SFEC-2012-03-25-22-22.dmp
-rw-r--r--   1 easydone   easydone     10531 Mar 25 23:35 ./2012-03-25/SFEC-2012-03-25-22-22.log
drwxr-xr-x   2 easydone   easydone      1024 Mar 26 22:21 ./2012-03-26
-rw-r--r--   1 easydone   easydone   2585207808 Mar 26 22:21 ./2012-03-26/EDIM-2012-03-26-22-00.dmp
-rw-r--r--   1 easydone   easydone      8629 Mar 26 22:21 ./2012-03-26/EDIM-2012-03-26-22-00.log
-rw-r--r--   1 easydone   easydone     41984 Mar 26 22:00 ./2012-03-26/SESSION-2012-03-26-22-00.dmp
-rw-r--r--   1 easydone   easydone      1991 Mar 26 22:00 ./2012-03-26/SESSION-2012-03-26-22-00.log
-rw-r--r--   1 easydone   easydone   4035786752 Mar 26 23:18 ./2012-03-26/SFEC-2012-03-26-22-21.dmp
-rw-r--r--   1 easydone   easydone     10531 Mar 26 23:18 ./2012-03-26/SFEC-2012-03-26-22-21.log
drwxr-xr-x   2 easydone   easydone      1024 Mar 27 22:21 ./2012-03-27
-rw-r--r--   1 easydone   easydone   2586354688 Mar 27 22:21 ./2012-03-27/EDIM-2012-03-27-22-00.dmp
-rw-r--r--   1 easydone   easydone      8629 Mar 27 22:21 ./2012-03-27/EDIM-2012-03-27-22-00.log
-rw-r--r--   1 easydone   easydone     41984 Mar 27 22:00 ./2012-03-27/SESSION-2012-03-27-22-00.dmp
-rw-r--r--   1 easydone   easydone      1991 Mar 27 22:00 ./2012-03-27/SESSION-2012-03-27-22-00.log
-rw-r--r--   1 easydone   easydone   4036493312 Mar 27 23:25 ./2012-03-27/SFEC-2012-03-27-22-21.dmp
-rw-r--r--   1 easydone   easydone     10531 Mar 27 23:25 ./2012-03-27/SFEC-2012-03-27-22-21.log
mcel-dunn02[257]/u01/easydone/DBDUMPS #

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Help - To copy and compress files one day ago

Hi dears, Hi All, I'm a new member of this Forum. I have need your help to handle this request. "I want to copy and Compress files not of today but of yesterday only using some script". For example I have the following files under a particular directory in a Solaris machine. ... (7 Replies)
Discussion started by: JackyJohn
7 Replies

2. UNIX for Dummies Questions & Answers

How do I compress all files in a directory?

the problem states "Write a script that compresses all the files in the directory. Make a directory and put some files in it. Also make a sub directory in your directory and put files in it also. Once you have this basic ability to compress all files within a directory, add to your script a menu of... (1 Reply)
Discussion started by: Brittany
1 Replies

3. Shell Programming and Scripting

Help on a script to push files once a day

Hello! Please I need some help on writing a script to push files from one server to the other once a day, everyday. I know that I can use this script on a crontab to send the files , but I am not sure how to start writing it, the actual script. I could start by declaring some variables: ... (4 Replies)
Discussion started by: fretagi
4 Replies

4. UNIX for Dummies Questions & Answers

Move the files between Current day & a previous day

Hi All, I have a requirement where I need to first capture the current day & move all the files from a particular directory based on a previous day. i.e move all the files from one directory to another based on current day & a previous day. Here is what I am trying, but it gives me errors.... (2 Replies)
Discussion started by: dsfreddie
2 Replies

5. Shell Programming and Scripting

Help - compress file one day ago

Hi All, I'm a new member of this Forum. I have need your help to handle this request. "Compress a file name not of today but of yesterday only". For example 0 mar 08:00 TEST_RPT_STATUS_M1I_CMI20120320.xls 20 mar 08:00 TEST_RPT_STATUS_M1I_CMI20120320.rep 21 mar 08:00... (6 Replies)
Discussion started by: gio123bgg
6 Replies

6. Shell Programming and Scripting

Archive directory script with tar/compress

Hi all I need to write a script that archives all files with a certain date in the filename, to another location. It has to run on a AIX using tar/compress or another standard AIX tool. The directory will have x files, each prefixed with a date like yyyymmdd_desc.csv. I need all to... (7 Replies)
Discussion started by: AIXfrog
7 Replies

7. Shell Programming and Scripting

compress Directory

Hi Friends, I have a directory under which 10 more directories are there. In each 10 directories there are several files. I want to do FTP. But in FTP we cannt Transfer the main directory. each Time we have to go to the respective directry and then we have to to FTP. For this instance I... (9 Replies)
Discussion started by: deep_kol
9 Replies

8. Shell Programming and Scripting

How to Compress files before moving them in a directory

I need a shell script that zips a file before moving them..please help (3 Replies)
Discussion started by: godalle
3 Replies

9. Shell Programming and Scripting

Write a shell script to find whether the first day of the month is a working day

Hi , I am relatively new to unix... Can u pls help me out to find out if the first day of the month is a working day ie from (Monday to Friday)...using Date and If clause in Korn shell.. This is very urgent. Thanks for ur help... (7 Replies)
Discussion started by: phani
7 Replies

10. UNIX for Dummies Questions & Answers

How to compress a directory on a Sun Solaris 5.7 ?

Hi, Is there any utility to compress an entire directory on a Sun Solaris 5.7 ? Something like "compressdir" on other flavours of Unix ? Thanks (4 Replies)
Discussion started by: sameerdes
4 Replies
Login or Register to Ask a Question