in reply to Re: Re: Re: Aging Script
in thread Aging Script

The only thing changed in the new code is the -h to -d. I still have to replace the path find and delete the files on my PC.
Here is the new code:
#!/usr/local/bin/perl -w #Call Module use File::Find; use File::Copy; use Getopt::Std; getopts('d:h'); #Initialize Variables $server='server104'; $dirl='\\\\'."$server".'\\d$'; $agedays=60; #defaults agedays to 60 #Process arguments ([h]elp, [d]ays) if ($opt_d){ die "\ -d[days to age]\n"; } if ($opt_d){ if ($opt_d gt 9){ #tests for strings die "Error: days option must be a number. Use -d[da +ys to age]\n"; } else{ $agedays=$opt_d; } } #Do date calculations @xtime=localtime(time); $day=$xtime[3]+1; $month=$xtime[4]+1; $year=$xtime[5]+1900; $hours=$xtime[2]; $mins=$xtime[1]; $secs=$xtime[0]; $logname='//server1/d$/'."ftp$month$day$year$hours$mins$secs".'.log'; $agesecs=60*60*24*$agedays; #converts $agedays to seconds $daysago=time-$agesecs; #the time stamp of $agedays ago in seco +nds $daysago2=localtime($daysago); #the time stamp of $agedays ago in w +ords - mainly for printing #Find the files (no dir) on the server print "finding files to be aged\.\.\.\n"; find(\$wanted, $dirl); sub wanted { $filesecs = (stat("$File::Find::dir/$_"))[9]; #Gets the 9th ele +ment of file stat - + # the modified time $filesecs2=localtime($filesecs); if ($filesecs<$daysago && -f){ #-f=regular files, eliminate + DIR p.367 push (@files,"$File::Find::dir/$_"); push (@files,"$filesecs2"); } print'.'; } #replace '/' with '\' in file names foreach (@files){ s/\//\\/g; } #Write to Log %filehash=@files; #puts the array into a hash for easy printing. Ke +y=file, Value=date open OUT, ">$logname" or die "Cannot open $OUT for write :$!"; print OUT "FTP server aging log generated by PERL script\n"; print OUT "Script written by Ozzy on 4/18/00\n"; print OUT "Files deleted from \\\\$server on ".localtime(time)."\n"; print OUT "Files deleted before $daysago2\n"; print OUT "Files were aged $agedays days\n\n"; print OUT "File Listing:\n\n"; foreach $filename (sort keys %filehash){ print OUT "filename $filehash{$filename}\n"; } close OUT; #Delete files print "\nDeleting all files before $daysago2"; #unlink $filehash; print "\nScript complete.";