Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl: the Markov chain saw
 
PerlMonks  

Re: how to permanently monitor a directory

by l2kashe (Deacon)
on Aug 14, 2003 at 13:59 UTC ( #283876=note: print w/ replies, xml ) Need Help??


in reply to how to permanently monitor a directory

#!/usr/bin/perl use strict; use DB_File; my $base = '/some/dir'; # dir to check my $data = '/some/file.db'; # file name cache my $sleep = 100; # how long to sleep for my $maxtime = 86400; # max time before key removal while (1) { # # we need to tie and untie each time just to be safe due # to file caching and flushing, which sometimes doesnt # happen untill the file has been untied. # If another monk can help here that would be nice. # tie(my %files, 'DB_File', $data, O_RDWR, 0644) or die "Cant tie $data: $!\n"; opendir(BASE, $base) or die "Cant open dir $base: $!\n"; for ( grep(!/^\./, readdir BASE) ) { # avoid . and .. :) if ( $files{$_} ) { $files{$_} = time(); } else { do_something(); $files{$_} = time(); } } closedir(BASE); for ( keys %files ) { # remove the file if it hasnt been around for a week delete($files{$_}) if ($files{$_} >= $maxtime); } untie(%files); sleep $sleep; }

use perl;


Comment on Re: how to permanently monitor a directory
Download Code

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://283876]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others chilling in the Monastery: (15)
As of 2014-09-22 18:03 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    How do you remember the number of days in each month?











    Results (198 votes), past polls