move old files


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting move old files
# 8  
Old 08-12-2008
Please use the code tags.
Code:
#!/bin/sh
days=10
find /home -type f -atime $days | \
while read file
do
basename $file >>log.txt
cp "$file" /tmp/old
#What do you try to find here? The owner of the file? 
owner=$(find /home -type f -atime +5 -exec ls -l {} \;|awk '{print $3}')   
#Do you really want to send the log for each file?       
 mail -s "Log of the deleted files from your account " $owner@gmail.com < log.txt  
done

# 9  
Old 08-12-2008
#What do you try to find here? The owner of the file?
#Yes

owner=$(find /home -type f -atime +5 -exec ls -l {} \;|awk '{print $3}')
#Do you really want to send the log for each file?
The files that are copied should be written into log file and then the entire logfile should be mailed to owner of the files

mail -s "Log of the deleted files from your account " $owner@gmail.com < log.txt
# 10  
Old 08-12-2008
broli already provide the solution, https://www.unix.com/shell-programmin...#post302224142
# 11  
Old 08-12-2008
yes
I got it
thanks broli
# 12  
Old 08-12-2008
Quote:
Originally Posted by broli
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




Can I modify this script to use a file that contains a list of files that should be excluded to allow the user
to specify files in non-standard locations that should be exempt from being moved.
# 13  
Old 08-12-2008
Quote:
Originally Posted by tjay83
Can I modify this script to use a file that contains a list of files that should be excluded to allow the user
to specify files in non-standard locations that should be exempt from being moved.
if you are asking for permission to doit, sure, go head.

if you are asking a way to doit. this is getting a little old
Code:
#!/bin/sh
days=10
temporal_folder=/tmp/`basename $0`-$$
$blacklist=/path/to/file

mkdir $temporal_folder 

find /home -type f -atime $days | \
while read file
do
     while read line
     do
          if [ $line != $file ]
          #is not a protected file
          owner=`ls -l $file | awk ' { print $3 } '`
          basename $file >> $temporal_folder/$owner
          cp $file /tmp/old
          fi 
     done < $blacklist #black list
done #find's output

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

this script expects a a black list file that contains the path, exactly as find's output.
one file per line.
# 14  
Old 08-12-2008
So
During the execution of the script, I have to pass blacklist as an argument at the command prompt and find command willnot search the directory in the blacklist. Right?

and here is my questions about your script:

$blacklist=/path/to/file --so why do we use $blacklist and not only blacklist?
mkdir $temporal_folder

find /home -type f -atime $days | \
while read file
do
while read line
do
if [ $line != $file ] -- why not if [ $line != $blacklist ]
#is not a protected file
owner=`ls -l $file | awk ' { print $3 } '`
basename $file >> $temporal_folder/$owner
cp $file /tmp/old
fi
done < $blacklist #black list -- and what is the use of < in here
done #find's output

Last edited by tjay83; 08-13-2008 at 07:30 AM..
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