Archive different folders based on their names


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Archive different folders based on their names
# 1  
Old 09-29-2010
Question Archive different folders based on their names

This is my first post so ... be gentleSmilie
Hello I have several folders that are backed up daily in following format:

/back_YY.MM.DD/backup1/*
........................./backup2/*

I looking a script to archive and rename all backup folders bazed on root folder date:

/back_YY.MM.DD/backup1_YYMMDD.tar.gz
........................../backup2_YYMMDD.tar.gz

Thanks in advance.

Last edited by vilibit; 10-04-2010 at 03:27 AM.. Reason: Bad formating
# 2  
Old 09-29-2010
shell code:
  1. for F in /back_YY.MM.DD/backup1 /back_YY.MM.DD/backup2
  2. do echo $F/${F#/*/}_${F:6:2}${F:9:2}${F:12:2}.tar.gz
  3. done
output:
Code:
/back_YY.MM.DD/backup1/backup1_YYMMDD.tar.gz
/back_YY.MM.DD/backup2/backup2_YYMMDD.tar.gz

# 3  
Old 09-29-2010
do you mean you need tar and compress the folders under /back_YY.MM.DD?

for example, if there is a folder :

Code:
/back_YY.MM.DD/backup1/*

you need gtar the folder backup1, and saved as
Code:
/back_YY.MM.DD/backup1_YY.MM.DD.tar.gz

This User Gave Thanks to rdcwayx For This Post:
# 4  
Old 09-30-2010
Quote:
Originally Posted by rdcwayx
you need gtar the folder backup1, and saved as
Code:
/back_YY.MM.DD/backup1_YY.MM.DD.tar.gz

I think you're right.
Code:
for F in /back_YY.MM.DD/backup1 /back_YY.MM.DD/backup2
do echo ${F%/*}/${F#/*/}_${F:6:2}${F:9:2}${F:12:2}.tar.gz
done

result
Code:
/back_YY.MM.DD/backup1_YYMMDD.tar.gz
/back_YY.MM.DD/backup2_YYMMDD.tar.gz

This User Gave Thanks to frans For This Post:
# 5  
Old 09-30-2010
MySQL

Thanks for your reply. I will try your script and keep you posted.
# 6  
Old 10-01-2010
I guess you have many back_YY.MM.DD folders with different date.

Code:
rootpath="/"          # you can update here, if the backup folder are not under / 

cd $rootpath

ls -l back_* |awk '/^d/ {print $NF}'  |while read dir
do
  cd ${dir}
  ls -l |awk '/^d/ {print $NF}' |while read subdir
  do
     tar cvf - ${subdir} |gzip > ${subdir}_${dir#*_}.tar.gz   # or replace by below command, if you have gtar
#   gtar zcvf ${subdir}_${dir#*_}.tar.gz ${subdir}
  done
  cd $rootpath
done

# 7  
Old 10-01-2010
Bug

Quote:
Originally Posted by rdcwayx
I guess you have many back_YY.MM.DD folders with different date.

Code:
rootpath="/"          # you can update here, if the backup folder are not under / 

cd $rootpath

ls -l back_* |awk '/^d/ {print $NF}'  |while read dir
do
  cd ${dir}
  ls -l |awk '/^d/ {print $NF}' |while read subdir
  do
     tar cvf - ${subdir} |gzip > ${subdir}_${dir#*_}.tar.gz   # or replace by below command, if you have gtar
#   gtar zcvf ${subdir}_${dir#*_}.tar.gz ${subdir}
  done
  cd $rootpath
done

Yes. I have many backups with different dates and in each day is adding more.
I tested your script and something strange are happening:
- al folders beginning with back are processed ("back" "back.somename")
- on every pass i get a message about line 7:
"line 7: cd: back1: No such file or directory"


Probably because of that:
- all archives are made in root folder and not in it's own folder
- all files from subfolders are not deleted.
- archives contain all subfolders not just own folders: backup1_YYMMDD.tar.gz contain all subfolders (ex. backup1/*, backup2/*, etc) instead just backup1/* subfolder.

Even so, I can use your script as it is. Is a great time saving. Thanks again for your reply.

Last edited by vilibit; 10-04-2010 at 03:23 AM.. Reason: Reformulating
Login or Register to Ask a Question

Previous Thread | Next Thread

9 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Allocating names to folders based on a file

Hi everyone, I have a problem and I would be gratful if you can help. I have set of folders with files in them. e.g. data1, data2, data3 and I have a json file with info ... looking like this I want to rename my files to replace the data with their gender to some processing and back to... (8 Replies)
Discussion started by: A-V
8 Replies

2. UNIX for Dummies Questions & Answers

Archive folders and sub folders

Hi Can i archive folder and folders in with the tar command My files are located in subfolders Eg: Folder1/Folder1_1/*.pdf Folder1/Folder1_2/*.pdf Folder1/Folder1_3/*.pdf so i would like to tar all the files in Folder1_1 and Folder1_2 only not Folder1_3 that should be done next... (2 Replies)
Discussion started by: cnrj
2 Replies

3. Shell Programming and Scripting

Files with same names in different folders

Hello, I am looking for a command line that can do some operations on two files that have the same names but in different folders. for example if folder A contains files 1.txt, 2.txt, 3.txt,.. folder B contains files 1.txt, 2.txt, 3.txt,.. If I would like to concatenate the two files... (6 Replies)
Discussion started by: Mohamed EL Hadi
6 Replies

4. OS X (Apple)

Remove leading spaces from file names and folders

Hi All, I have a vexing issue with leading spaces in file names. Basically, we're moving tons of data from our ancient afp file share to Box.com and Box forbids leading spaces in files or folders. The HFS file system seems to be perfectly fine with this, but almost all other Unix file systems... (1 Reply)
Discussion started by: prometheon123
1 Replies

5. Shell Programming and Scripting

Ordering Folders having Date as Names

Hi All, I have directories under /development/arun/weekly/ 20120421 20120414 . . . . I need to arrange these directories in descending order. folder name with recent date will be on top and then others. (1 Reply)
Discussion started by: Arun Mishra
1 Replies

6. Shell Programming and Scripting

Archive files to different target folders based on criteria

Hi All, I am creting archive script in which i need to split the source file's to different target folder's based on the input file name first character. Input1.txt -- will contains file names that are needs to be Archive. Input1.txt A1213355 B2255666 C2254555 A6655444 C5566445 ... (2 Replies)
Discussion started by: kmsekhar
2 Replies

7. UNIX for Dummies Questions & Answers

How to Archive Folders in T-Shell

Hi i am new to Unix Shell Programming... i m just a beginner and i m training myself in Unix.... I need a sample code to archive folders in my Windows OS using Unix commands... Can someone Help me? (1 Reply)
Discussion started by: aegan
1 Replies

8. UNIX for Dummies Questions & Answers

Copying multiple folders to local machine (don't know folder names)

Hi. I'm trying to copy multiple folders from the remote machine to the local machine. I wrote a batch file to run an ftp window. The problem I am having is that the only command to copy files is mget *, and this copies only files, not folders. For example, ftp ts555 cd ts555/test ' test... (5 Replies)
Discussion started by: leenyburger
5 Replies

9. Shell Programming and Scripting

script to archive certain folders in a hierarchy

I'm new to shell scripting and I'm having a tough time figuring out how to script something. Can anyone help? Here is my setup and what I want to do: A directory contains a list of projects by year (2000, 2001, etc) and customers (01-001) all of which have the same internal directory setup... (3 Replies)
Discussion started by: medazinol
3 Replies
Login or Register to Ask a Question