> -----Original Message-----
> From: [EMAIL PROTECTED]
> [mailto:[EMAIL PROTECTED]]
> Sent: Tuesday, August 20, 2002 2:54 PM
> To: [EMAIL PROTECTED]; [EMAIL PROTECTED];
> [EMAIL PROTECTED]
> Subject: RE: (Question about a script)
> 
> 
>       This will be fine if it is not a continously running 
> script. The -M
> is in reference to the 'startup of the script'. So if over 
> time this becomes
> a service, then the -M will not do what you expect.
> 
>       Been there and caught. Just a heads up.

If you want to be purist, you could also rewrite the get_diff() as:

sub get_diff
{
   local $^T = time;            # in case Wags makes us a daemon :~)
   -M shift;
}

> 
> Wags ;)
> 
> -----Original Message-----
> From: Bob Showalter [mailto:[EMAIL PROTECTED]]
> Sent: Tuesday, August 20, 2002 11:30
> To: '[EMAIL PROTECTED]'; [EMAIL PROTECTED]
> Subject: RE: (Question about a script)
> 
> 
> > -----Original Message-----
> > From: david [mailto:[EMAIL PROTECTED]]
> > Sent: Tuesday, August 20, 2002 2:11 PM
> > To: [EMAIL PROTECTED]
> > Subject: Re: (Question about a script)
> > 
> > 
> > the following should get you started:
> > 
> > #!/usr/bin/perl;
> > 
> > use Time::Local;
> > 
> > @servers = ('server1','server2','server3');
> > @users = ('user1','user2','user3');
> > @files = ('file1','file2','file3');
> > 
> > foreach my $file (@files){
> >     #-- if the file is older than 7 days
> >     if(get_diff($file) > 7){
> >         #-- to each server
> >         foreach my $server (@servers){
> >                 #-- to each user
> >                 foreach my $user (@users){
> >                      #-- you will replace the following
> >                      #-- with your actual mailer. i can't help
> >                      #-- you on that :-)
> >                      print "HI $server: $user: $file is 
> older than 7 
> > days\n";
> >                 }
> >         }
> >     }
> > }
> > 
> > sub get_diff(){
> >         #-- today
> >         my($day,$month,$year) = (localtime)[3..5];
> >         #-- file's last modified date in seconds
> >         my $lm = (stat(shift))[9];
> >         #-- turn day/month/year into seconds
> >         my $sd = timelocal(undef,undef,undef,$day,$month,$year);
> >         #-- turn seconds into days
> >         return int(abs($lm-$sd) / (24*60*60));
> > }
> 
> Perl's -M file operator can help here. It gives the age in 
> days of a file.
> 
> perldoc perlop, search for "-X"
> 
> -- 
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 

-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to