Loop folders, delete files, copy new ones


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Loop folders, delete files, copy new ones
# 1  
Old 01-18-2011
[Solved] Loop folders, delete files, copy new ones

Folks,

I am hopeful that you may be able to help me out with writing a script that can be run nightly (as cron?) to loop through all subfolders within the "/media" directory, delete all of the files in each of them, and then copy in all of the files from the "/home/[user]/sansa" directory to each of the "/media" subfolders.

I have configured a Linux system as a charging station for about 50 Sansa Clip MP3 players with USB connectivity, which are being used for visitors to a museum attraction. Sometimes, visitors delete files from the players, or use the Sansa's recording feature to record sound files that other visitors need not access. The goal is to wipe the contents of the devices on a nightly basis, and retrieve them the next morning with freshly-written data.

Thanks for any assistance,
- Adam

Last edited by acraig; 01-18-2011 at 12:10 PM..
# 2  
Old 01-18-2011
Something like this?
Code:
rm -r /media

cd /home/[user]/sansa
find * -print | cpio -pdmu /media

# 3  
Old 01-18-2011
Instead of doing a massive delete of all the files just use rsync to prune the one's that are different from the source in /home/

Code:
 
rsync -a --delete \
--exclude /home/whateveryouwant \
--exclude /home/someotherfolder \
/home/ \
/media

# 4  
Old 01-18-2011
Thanks, Franklin52.

I really like simusphere's approach. However, how do I get the script to loop through each of the subfolders inside the /media parent? For instance, device named USBDEV01 and USBDEV02 are both listed within the /media directory as /media/USBDEV01 and /media/USBDEV02. I want the rsync operation to run both inside USBDEV01 and USBDEV02 subfolders, plus any additional subfolders that may exist, depending on how many USB devices are connected on a given night.

More simply, is it possible to configure the script to do a loop rsync inside each subdirectory within /media, regardlss to how many folders are present, and what they are named?

Thanks for the help!
- Adam

---------- Post updated at 11:09 AM ---------- Previous update was at 10:12 AM ----------

I managed to figure it out. The following is what I'm using successfully:

Code:
#!/bin/sh
cd /media
find /media/* -maxdepth 0 -print | while read directory
do
   echo "copying files to ${directory#"./"}"
   rsync -a --no-g --delete /home/PAMPLINPARK0/acraig/sansa/ "${directory#"./"}"
   sleep 5
done

# 5  
Old 01-18-2011
Are these sansa devices physically labeled in a unique way? Is the data files on each one different? Just trying to understand the problem at hand. If the data is the same on each device then it should be a simple solution. If it is unique data on each device then you will need to create a unique identifying file (perhaps a hidden dot file) that would uniquely identify the device. I would use the ${username} with a number on the end.

.${username}01
.${username}02
.${username}03
.${username}04
etc...

The script would need to determine the source and destination directory for each device found in /media.

Code:
 
cd /media
for usbdevice in *
do
  ...
done

I don't have time to work on it right now but maybe some of the other gurus on here can hash it out for you.
# 6  
Old 01-18-2011
simusphere, Thanks for your response. The script that I posted just before your last comment is what I ended up settling on. It successfully performs rsync operations on all of the devices mounted within the /media directory.
# 7  
Old 01-18-2011
Ah, so you did have the simple version of what you were asking. So all the media on the usb drives is the same. Excellent!, glad you got it working the way you wanted.
This User Gave Thanks to simusphere For This Post:
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

How to copy files/folders and show the files/folders?

Hi, So i know we use cp -r as a basic to copy folders/files. I would like this BUT i would like to show the output of the files being copied. With the amazing knowledge i have i have gone as far as this: 1) find source/* -exec cp -r {} target/ \; 2) for ObjectToBeCopied in `find... (6 Replies)
Discussion started by: Imre
6 Replies

2. HP-UX

Recursive copy of Folders with files

Dear All, I will appreciate any help received. Our system is running on hpux v1 My problem is as follows: We have many customer folders with name fd000100, fd000101 and so on e.g. (Testrun)(testsqa):/>ll /TESTrun/fd000100 total 48 drwxrwx--- 2 fq000100 test 96 Jun 27 2004... (17 Replies)
Discussion started by: mhbd
17 Replies

3. UNIX for Dummies Questions & Answers

copy mutilple files to mutiple folders

Hi, I just started to learn shell progamming and just can't get my head around the following problem. I need to do the following: I have a folder which contains 100+ subfolders. Inside these subfolders there is one folder named 'Morph' and several jpg's. I need to copy all the files into... (4 Replies)
Discussion started by: M474746
4 Replies

4. Windows & DOS: Issues & Discussions

Windows mass copy files with same name in differnt folders

I have files existing with same names in the folders with date as display below c:\2010-09-10 <==== folder arr1.jpg arr2.jpg arr3.jpg arr4.jpg c:\2010-09-09 <==== folder arr1.jpg arr2.jpg c:\2010-09-08 <==== folder arr2.jpg arr3.jpg arr4.jpg ... (5 Replies)
Discussion started by: jville
5 Replies

5. Shell Programming and Scripting

I need script Copy permissions of files and folders from one server to another

Hi.. I have 2 servers with linux suse10. I made a mistake and on one of the servers changed with chmod the permission of root in directory /. In the other servers the permissions are correct Please i need a script, to change the permissions of one server 1, using the same permission of the... (11 Replies)
Discussion started by: ave-phoenix
11 Replies

6. UNIX for Dummies Questions & Answers

Delete folders and files in it - UNIX

I need to delete a folder and files in it of yesterdays and simply put this in cron. Folder name - "2010-03-2010" File name - "eprod_06_23.dmp" and "eprod_06_23.exp" Actually this folder and file is been created by a script which takes a backup of DB everyday.Thats why it creates folder and file... (3 Replies)
Discussion started by: j_panky
3 Replies

7. Shell Programming and Scripting

copy some files from users home folders to my folder

i have users home directories in /home all the users have some files starting with character e and i want to copy all these files in a folder in my (root) home using a script i tried the script for i in m5 do cd m5 cp e1* /home/pc/exam cd .. done but get these... (3 Replies)
Discussion started by: pcrana
3 Replies

8. UNIX for Dummies Questions & Answers

copy all files and folders and cjange or remove ownership

So tried: cp -r -p test1/ user@machine:///srv/www/vhosts/domain.co.uk/httpdocs/backup/ but this didn't work either :( Anyone able to help with this? Many thanks Mr M (3 Replies)
Discussion started by: misterm
3 Replies

9. Shell Programming and Scripting

Unzip, copy, and delete loop

Hey there, I am trying to move zipped text files from a remote server to a remote tape storage facility, through my home directory. What I want to do is get the zip file (using scp), unzip it, copy the output text file which was inside (using rfcp) to the tape storage server, and then delete... (3 Replies)
Discussion started by: spyne
3 Replies

10. Shell Programming and Scripting

delete all folders/files and keep only the last 10 in a folder

Hi, I want to write a script that deletes all folders and keep the last 10 recent folders. I know the following: ls -ltr will sort the folders from old to recent. ls -ltr | awk '{print $9}' will list the folder names (with a blank line at the beginning) I want to get the 10th folder from... (3 Replies)
Discussion started by: melanie_pfefer
3 Replies
Login or Register to Ask a Question