Unix/Linux Go Back    


Shell Programming and Scripting BSD, Linux, and UNIX shell scripting — Post awk, bash, csh, ksh, perl, php, python, sed, sh, shell scripts, and other shell scripting languages questions here.

Compress every file

Shell Programming and Scripting


View Poll Results: SLES 11
SLES 11 SP4 LinuxLinuxLinuxLinux 0 0%
SLES 12 SP1 LinuxLinuxLinuxLinux 0 0%
Voters: 0. This poll is closed

Reply    
 
Thread Tools Search this Thread Display Modes
    #1  
Old Unix and Linux 06-16-2017   -   Original Discussion by Steven_2975
Steven_2975's Unix or Linux Image
Steven_2975 Steven_2975 is offline
Registered User
 
Join Date: Jun 2017
Last Activity: 30 June 2017, 9:12 PM EDT
Posts: 3
Thanks: 0
Thanked 0 Times in 0 Posts
Compress every file

Dear Experts,

I am new to this forum. Thank you for moderator to allow me to join.

I have a question about automatic compression using sh and crontab
on an application which runs on the Suse Linux Server 11 SP4.

My question is how to compress every file in a directory into its own tar whilst preserving the name for each file?
here is my sh code:


Code:
#!/bin/sh

DB_DATA_PATH="/db/shr/bcksrv/bck/IPAddress/DBX/Foldera"
DB_TAR_PATH="/db/shr/folderb"
DB_DATA

LINES=$(find "$DB_DATA_PATH" -maxdepth 1 -mtime -1 -name "bck_F1*" | wc -l)
if [ $LINES -gt 0 ]; then
	find "$DB_DATA_PATH" -type f -mtime +2 -iname "bck_F1*" -exec gzip -f '{}' ';'
fi

the above sh code is not working. Any inputs/ideas would be greatly appreciated. Thank you.

---------- Post updated at 03:35 PM ---------- Previous update was at 09:52 AM ----------

Anything wrong with my question ? Please let me know.

Last edited by Steven_2975; 06-16-2017 at 03:35 AM..
Sponsored Links
    #2  
Old Unix and Linux 06-16-2017   -   Original Discussion by Steven_2975
rbatte1's Unix or Linux Image
rbatte1 rbatte1 is online now Forum Staff  
Root armed
 
Join Date: Jun 2007
Last Activity: 13 December 2017, 7:43 AM EST
Location: Lancashire, UK
Posts: 3,407
Thanks: 1,477
Thanked 669 Times in 602 Posts
Welcome Steven_2975,

I have a few observations:-
  • I don't know what command DB_DATA does. Is that important?
  • I don't see why you count the items to test if you need to do the work. If the second find command does not select anything, the -exec section does not run.
  • If the depth of directory/filename gets very long, your commands may fail. It might be better to change to $DB_DATA_PATH, check that you have done so and then run find with a directory of .
  • I'm not sure you need to have single quotes around the '{}' or ';'
  • When you say it's 'not working', in what way is it not? Do you have any output/errors?
  • For a dummy run, use .... -exec echo gzip ...... so you make sure you don't break anything whilst working on it.
  • In your first find, you have options -maxdepth 1 -mtime -1 set when you are counting, but not when you execute the second find. Which is the correct configuration?
I'm sure we can help you work this through to achieve what you want.


Kind regards,
Robin
Sponsored Links
    #3  
Old Unix and Linux 06-16-2017   -   Original Discussion by Steven_2975
RudiC's Unix or Linux Image
RudiC RudiC is offline Forum Staff  
Moderator
 
Join Date: Jul 2012
Last Activity: 13 December 2017, 7:02 AM EST
Location: Aachen, Germany
Posts: 11,794
Thanks: 339
Thanked 3,659 Times in 3,357 Posts
On top of what rbatte1 said (esp. list item 5!), you're talking of "compress ... into its own tar" but not using the tar command anywhere in your code?
The Following User Says Thank You to RudiC For This Useful Post:
rbatte1 (06-19-2017)
    #4  
Old Unix and Linux 06-26-2017   -   Original Discussion by Steven_2975
Steven_2975's Unix or Linux Image
Steven_2975 Steven_2975 is offline
Registered User
 
Join Date: Jun 2017
Last Activity: 30 June 2017, 9:12 PM EDT
Posts: 3
Thanks: 0
Thanked 0 Times in 0 Posts
Quote:
Originally Posted by rbatte1 View Post
Welcome Steven_2975,

I have a few observations:-
  • I don't know what command DB_DATA does. Is that important?
  • I don't see why you count the items to test if you need to do the work. If the second find command does not select anything, the -exec section does not run.
  • If the depth of directory/filename gets very long, your commands may fail. It might be better to change to $DB_DATA_PATH, check that you have done so and then run find with a directory of .
  • I'm not sure you need to have single quotes around the '{}' or ';'
  • When you say it's 'not working', in what way is it not? Do you have any output/errors?
  • For a dummy run, use .... -exec echo gzip ...... so you make sure you don't break anything whilst working on it.
  • In your first find, you have options -maxdepth 1 -mtime -1 set when you are counting, but not when you execute the second find. Which is the correct configuration?
I'm sure we can help you work this through to achieve what you want.


Kind regards,
Robin
Hi Robin,

Many thanks for your reply.

DB_DATA_PATH is the code for the sub directory that is created to store the backup file of an application database backup.
So, the backup database actual path is /db/shr/bcksrv/bck/IPAddress/DBX/Foldera.

Here is one of the sub directories is
/db/shr/bcksrv/bck/IPAddress/DBX/Foldera/bck_F120170527.

The /db/shr/bcksrv/bck/IPAddress/DBX/Foldera/bck_F120170527 consists of two sub directories, i.e. ept & ine. In these both directories, there are some backup files of the application database.

In this sub directory, the available files are only backup file folders. Each backup file folder consists of 2 sub folders, i.e. exp & ine folders.

I use manual compressing command as follows:
zip -r bck_F120170527.zip /db/shr/bcksrv/bck/IPAddress/DBX/Foldera/bck_F120170527/ept /db/shr/bcksrv/bck/IPAddress/DBX/Foldera/bck_F120170527/ine

but now, I want to compress the main automatically every 2 days.

I using this new modified code but not success:


Code:
#!/bin/sh

DB_DATA_PATH="/db/shr/bcksrv/bck/IPAddress/DBX/Foldera"
DB_TAR_PATH="/db/shr/folderb"
DB_DATA

LINES=$(find "$DB_DATA_PATH" -maxdepth 1 -mtime -1 -name "bck_F1*" | wc -l)
if [ $LINES -gt 0 ]; then
find "$DB_DATA_PATH" -type f -mtime +2 -iname "bck_F1*" -exec tar czvf {}.tar.gz -f "$DB_TAR_PATH" ';'
fi

the new sh command is still not working. Any helps to repair the code are really appreciate. Thank you.

---------- Post updated at 12:36 PM ---------- Previous update was at 12:18 PM ----------

Quote:
Originally Posted by RudiC View Post
On top of what rbatte1 said (esp. list item 5!), you're talking of "compress ... into its own tar" but not using the tar command anywhere in your code?
Thanks for your good info. I have repaired the code now. Pls help to check my code.
Sponsored Links
    #5  
Old Unix and Linux 06-26-2017   -   Original Discussion by Steven_2975
RudiC's Unix or Linux Image
RudiC RudiC is offline Forum Staff  
Moderator
 
Join Date: Jul 2012
Last Activity: 13 December 2017, 7:02 AM EST
Location: Aachen, Germany
Posts: 11,794
Thanks: 339
Thanked 3,659 Times in 3,357 Posts
Quote:
Originally Posted by Steven_2975 View Post
.
.
.
the new sh command is still not working.
.
.
.
Please become accustomed to provide decent context info of your problem.

You've been asked to explain WHAT and HOW is not working, and to show, if existent, system (error) messages verbatim, to avoid ambiguities and keep people from guessing.


EDIT: You seem to supply two -f options to tar, and no file(s) to archive.

Last edited by RudiC; 06-26-2017 at 01:45 AM..
The Following User Says Thank You to RudiC For This Useful Post:
drl (06-27-2017)
Sponsored Links
    #6  
Old Unix and Linux 06-30-2017   -   Original Discussion by Steven_2975
Steven_2975's Unix or Linux Image
Steven_2975 Steven_2975 is offline
Registered User
 
Join Date: Jun 2017
Last Activity: 30 June 2017, 9:12 PM EDT
Posts: 3
Thanks: 0
Thanked 0 Times in 0 Posts
Quote:
Originally Posted by RudiC View Post
Please become accustomed to provide decent context info of your problem.

You've been asked to explain WHAT and HOW is not working, and to show, if existent, system (error) messages verbatim, to avoid ambiguities and keep people from guessing.


EDIT: You seem to supply two -f options to tar, and no file(s) to archive.
Yes, sure. I actually want to compress every file in a directory into its own tar whilst preserving the name for each file automatically using cron job.
To do this, I am using the sh code that I have pasted here but the code is not working. I am sure the code is wrong.

So, to answer your question: WHAT is not working , it is the code or the sh code that I have pasted here.
HOW is not working,i.e. it is because the code is wrong.

If the code is not working, I need the new sh code from all of your here. If it is different with mine, it is okay but it should be worked.
If it is not available, pls help to repair my sh code. I really appreciate it. Tqvm

Rgds,
Steven

Last edited by Steven_2975; 06-30-2017 at 09:56 PM..
Sponsored Links
Reply

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Linux More UNIX and Linux Forum Topics You Might Find Helpful
Thread Thread Starter Forum Replies Last Post
Issue: Compress in unix server and FTP to windows and open the compress file using Winzip sakthifire UNIX for Dummies Questions & Answers 4 11-02-2009 09:38 AM
how to compress .zlib file wrapster UNIX for Advanced & Expert Users 1 05-05-2008 03:52 AM
unix script to takes the old data from a TXT file and compress them into new file vpandey Shell Programming and Scripting 2 03-05-2008 11:10 AM
compress more than one file prasee UNIX for Advanced & Expert Users 2 09-08-2007 10:15 AM
[help] Cant compress file endeavour1985 UNIX for Dummies Questions & Answers 8 01-18-2005 12:37 AM



All times are GMT -4. The time now is 08:44 AM.