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 1 Week Ago
Steven_2975 Steven_2975 is offline
Registered User
 
Join Date: Jun 2017
Last Activity: 25 June 2017, 11:36 PM EDT
Posts: 2
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; 1 Week Ago at 02:35 AM..
Sponsored Links
    #2  
Old Unix and Linux 1 Week Ago
rbatte1 rbatte1 is offline Forum Staff  
Root armed
 
Join Date: Jun 2007
Last Activity: 26 June 2017, 8:08 AM EDT
Location: Lancashire, UK
Posts: 3,141
Thanks: 1,316
Thanked 600 Times in 542 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 1 Week Ago
RudiC RudiC is offline Forum Staff  
Moderator
 
Join Date: Jul 2012
Last Activity: 27 June 2017, 3:14 AM EDT
Location: Aachen, Germany
Posts: 10,959
Thanks: 280
Thanked 3,368 Times in 3,101 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 (1 Week Ago)
    #4  
Old Unix and Linux 1 Day Ago
Steven_2975 Steven_2975 is offline
Registered User
 
Join Date: Jun 2017
Last Activity: 25 June 2017, 11:36 PM EDT
Posts: 2
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 1 Day Ago
RudiC RudiC is offline Forum Staff  
Moderator
 
Join Date: Jul 2012
Last Activity: 27 June 2017, 3:14 AM EDT
Location: Aachen, Germany
Posts: 10,959
Thanks: 280
Thanked 3,368 Times in 3,101 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; 1 Day Ago at 12:45 AM..
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 08:38 AM
how to compress .zlib file wrapster UNIX for Advanced & Expert Users 1 05-05-2008 02: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 10:10 AM
compress more than one file prasee UNIX for Advanced & Expert Users 2 09-08-2007 09:15 AM
[help] Cant compress file endeavour1985 UNIX for Dummies Questions & Answers 8 01-17-2005 11:37 PM



All times are GMT -4. The time now is 06:27 AM.