move old files


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting move old files
# 1  
Old 08-11-2008
move old files

hi

I am trying to write shell script that must scan a series of filesystems and find files that have not been accessed for over some number
of days and move them to /tmp/old

Did anyone write a such a script before?
Any help is really appreciated.
# 2  
Old 08-11-2008
By accessed do you mean modified or just read..... assuming you want access time
Code:
days=20
find /path/to/files -type f -atime $days | \
while read file
do
           mv $file /tmp/old
done

# 3  
Old 08-11-2008
thank a lot JIM.

Can I also create a log
of each user's files that are relocated and e-mail the log to the owner of the files?
# 4  
Old 08-12-2008
jim mcnamara script is an over kill.
find can execute comands on the files founds.
most of the times piping finds output to xarg or loops is not needed

but if you want to email the user, then you probably shoudl use waht he said, and ad the folowing things

an echo before the find, starting a file with some header like
and echo inside the loop, using >> to add the file names
one or more echos after the loop with some kind of finalization of the email body.

and for the tricky part, for each file, get the user. you can use ls -l, and pipe it to awk. or use some comand like "stat"
create temporal files for each user, with the body of the mail, and keep adding each file you find about that user.

and use mailx comand to send that file to someone
# 5  
Old 08-12-2008
I tried something like this, but it doesnt work.

#!/bin/sh
days=10
find /home -type f -atime $days | \
while read file
do
basename $file >>log.txt
cp $file /tmp/old
owner = find /home -type f -atime +5 -exec ls -l {} \;|awk '{print $3}'
mail -s "Log of the deleted files from your account " $owner@gmail.com < log.txt
done
# 6  
Old 08-12-2008
of course it dosnt.
first of all. when you execute a command and what to put that into a var, you use foward ticks ``
owner=`find /home -type f -atime +5 -exec ls -l {} \;|awk '{print $3}'`

and you move the files before doing the ls. and you even do a second find !!
second, you will be sending a mail for each file, and each mail would contain all the previous file also

and pls use the [code] tags

Code:
#!/bin/sh
days=10
temporal_folder=/tmp/`basename $0`-$$

mkdir $temporal_folder 

find /home -type f -atime $days | \
while read file
do
     owner=`ls -l $file | awk ' { print $3 } '`
     basename $file >> $temporal_folder/$owner
     cp $file /tmp/old
done

for file in $temporal_folder
do
     mail -s "Log of the deleted files from your account " $file@gmail.com < $file
done

rm -rf $temporal_folder

# 7  
Old 08-12-2008
thanks
I will work on it
Login or Register to Ask a Question

Previous Thread | Next Thread

9 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Move files with a certain suffix based on how many files are in another folder

Hello, First time poster. I am looking for a way to script or program the process of moving files from one folder to another, automatically, based on the count of files in the destination folder. I was thinking a shell script would work, but am open to the suggestions of the experts... (6 Replies)
Discussion started by: comtech
6 Replies

2. Shell Programming and Scripting

SBATCH trinity for multiple files and rename/move the output files

Hey guys, I have wrote the following script to apply a module named "trinity" on my files. (it takes two input files and spit a trinity.fasta as output) #!/bin/bash -l #SBATCH -p node #SBATCH -A <projectID> #SBATCH -n 16 #SBATCH -t 7-00:00:00 #SBATCH --mem=128GB #SBATCH --mail-type=ALL... (1 Reply)
Discussion started by: @man
1 Replies

3. Shell Programming and Scripting

Move all files except sys date (today) files in Solaris 10

I want to move all files from one directory to another directory excluding today (sysdate files) on daily basis. file name is in pattern file_2013031801, file_2013031802 etc (2 Replies)
Discussion started by: khattak
2 Replies

4. Shell Programming and Scripting

Recursively move directories along with files/specific files

I would like to transfer all files ending with .log from /tmp and to /tmp/archive (using find ) The directory structure looks like :- /tmp a.log b.log c.log /abcd d.log e.log When I tried the following command , it movies all the log files... (8 Replies)
Discussion started by: frintocf
8 Replies

5. UNIX for Dummies Questions & Answers

Move same files and issue ls -al command on remaining files

I know I can use an ls -l junk1 command to get a listing of all files in the directory junk1, but I was wondering how I'd go about going through the files in junk1 in a for-in loop and issuing the ls -l command on them one by one. This is what I have so far: for file in $(ls -a $1) do ls... (1 Reply)
Discussion started by: Trinimini
1 Replies

6. Shell Programming and Scripting

How to check files and move the results to differents files?

Hi, I am a newbie to shell scripting. here is my objective: 1)The shell program should take 2 parameters - ie-> DestinationFolder, WebFolder 2)Destination folder contains few files that has to has be verified and deleted. 3)WebFolder is a folder containing a list of master files 4)It... (1 Reply)
Discussion started by: sandhyagupta
1 Replies

7. UNIX for Dummies Questions & Answers

Move files

I have multiple file with names april.0001.frm.edi april.0002.frm.edi I created a list with all the file names which has "860" inside the file and named the list as april-860-list I need to move all the files to name CHRY.860.01 CHRY.860.02 from that list. How do I do that? I... (3 Replies)
Discussion started by: yshahiac
3 Replies

8. Shell Programming and Scripting

How to move all files except one?

Hello, I have to move all files, except one, from one directory to another. I tried it with mv and find: mv -f $(find $SOURCE -maxdepth 1 ! -name "FileNotToMove") $TARGET It nearly worked out, but unfortunately not only the content of the $SOURCE directory got moved, but also the directory... (4 Replies)
Discussion started by: Kim Walisch
4 Replies

9. UNIX for Advanced & Expert Users

move files

Hi guys, I have few files on my laptop. I am connected to a network called 'asx'(intranet). I have ssh2 and reflections on my system. I need to copy these few files from my system to a folder on the server(called 'CSSX'). Please can anyone explain me how to acheive this? I am new to UNIX and... (4 Replies)
Discussion started by: uniksbro
4 Replies
Login or Register to Ask a Question