Log In

Come Join Us!

Are you a
Computer / IT professional?
Join Tek-Tips Forums!
  • Talk With Other Members
  • Be Notified Of Responses
    To Your Posts
  • Keyword Search
  • One-Click Access To Your
    Favorite Forums
  • Automated Signatures
    On Your Posts
  • Best Of All, It's Free!

*Tek-Tips's functionality depends on members receiving e-mail. By joining you are opting in to receive e-mail.

Posting Guidelines

Promoting, selling, recruiting, coursework and thesis posting is forbidden.


script to zip and tar files at once.

script to zip and tar files at once.

hello All,

I have this in my /etc/oratab

The idea is to use a script to loop through each database, mindful that Database HOME is different.
Again, go into directory:
1) remove all files older than 7 days including old zip and tar files.
2) zip and tar the rest of the files while renaming it and put a timestamp of the day of creation of tarball.

Here is my script
# Script Name:

ORACLE_SID=`cat /etc/oratab | grep -v "^#" | grep -v "^\*" | grep -v "^agent" | cut -d":" -f1 | sort`
while read ORACLE_SID
find /orahome/app/oracle/admin/'$ORACLE_SID'/adump/* -mtime +7 -exec rm{} \
tar cvf /orahome/app/oracle/admin/'$ORACLE_SID'/adump/*aud | gzip -c > '$ORACLE_SID'_aud_files`date +" %b_%d_%Y"`.tar.gz

Above is my effort.
I have to admit that I have not tested this.
Please help & thanks for your help in advance.

RE: script to zip and tar files at once.

Couple little things wrong. The 'f' parameter to 'tar' will be looking for a filename to create. It won't do what you're wanting it to do. A dash will send its output to the pipeline.

Try this...


# Script Name:

# Set Inter-Field Separator to colon. Simplifies parsing the input file.

cat /etc/oratab | while read ORA_SID ORA_HOME ORA_START
#  find /orahome/app/oracle/admin/${ORA_SID}/adump/* -mtime +7 -exec rm {} \;
# can do the following for testing...
  find /orahome/app/oracle/admin/${ORA_SID}/adump/* -mtime +7 -ls

  tar cvf - /orahome/app/oracle/admin/${ORA_SID}/adump/*aud | gzip -c > ${ORA_SID}_aud_files_$(date '+%Y%m%d').tar.gz


I changed your date format to something that will stay sorted chronologically in a directory listing ("YYYYMMDD"). Sorry, but the format you had is a pet peeve of mine. Change it back if you want/need to.

RE: script to zip and tar files at once.

Oops, sorry, your 'find' command needs some help too. I tried to edit my post, but got an error. I'll add it here.

The first parameter of a 'find' should be a directory. It should look more like this...


find /orahome/app/oracle/admin/${ORA_SID}/adump  -mtime +7 -exec rm {} \; 

And as before, you can use a '-ls' to just list the file before testing instead of actually deleting them.

RE: script to zip and tar files at once.

Thanks Sam Bones

RE: script to zip and tar files at once.

FWIW - instead of piping the output to the gzip command why not simply specify tar's -g option which will output a gzipped format file directly?

ex: tar -cgf ./mytarfile.gz files_to_include

Just saves keystrokes and exec time. My 2 cents worth.

RE: script to zip and tar files at once.

Excellent suggestion. Just confirm that your 'tar' has the -g option. Some don't.

RE: script to zip and tar files at once.

Hello BobMCT & SamBones,

Thanks for your inputs.

However, the requirements have changed a little bit:

In addition, the will like to add the following:
1) On the first day of each month, zip and create a tar file from existing *aud files.
2) Everyday thereafter, compress new *aud files and append it to the to the existing tar file created in (1).

fmonth=`date '+%d'`
if [ $fmonth == 01 ]
tar -cgf /orahome/app/oracle/admin/${ORA_SID}/adump/{ORA_SID}_aud_files_$(date '+%B%Y').tar.gz /orahome/app/oracle/admin/${ORA_SID}/adump/*aud
tar cvf - /orahome/app/oracle/admin/${ORA_SID}/adump/*aud | gzip -c > /orahome/app/oracle/admin/${ORA_SID}/adump/{ORA_SID}_aud_files_$(date '+%B%Y').tar.gz

Red Flag This Post

Please let us know here why this post is inappropriate. Reasons such as off-topic, duplicates, flames, illegal, vulgar, or students posting their homework.

Red Flag Submitted

Thank you for helping keep Tek-Tips Forums free from inappropriate posts.
The Tek-Tips staff will check this out and take appropriate action.

Reply To This Thread

Posting in the Tek-Tips forums is a member-only feature.

Click Here to join Tek-Tips and talk with other members!


Close Box

Join Tek-Tips® Today!

Join your peers on the Internet's largest technical computer professional community.
It's easy to join and it's free.

Here's Why Members Love Tek-Tips Forums:

Register now while it's still free!

Already a member? Close this window and log in.

Join Us             Close