Beefy Boxes and Bandwidth Generously Provided by pair Networks
P is for Practical

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;

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://283876]
and one hand claps...

How do I use this? | Other CB clients
Other Users?
Others contemplating the Monastery: (5)
As of 2017-05-26 00:19 GMT
Find Nodes?
    Voting Booth?