-c|onf <file>: Config file holding patterns to match (Default:
.../etc/cleantmp.conf)
-l|ogpath <path>: Path to logfile (Default: /var/log)
+ -a|ppend: Append to logfile (Default: Noappend)
+ -da|emon Run in daemon mode (Default: -daemon)
-s|leep <secs>: How many seconds to sleep between polls (Default: 60)
=head1 DESCRIPTION
use Pod::Usage;
use File::Monitor;
use File::Spec;
-use File::Path;
+use File::Path qw/remove_tree/;
use lib "$FindBin::Bin/../lib";
help => sub { pod2usage(-verbose => 2)},
verbose => sub { set_verbose },
debug => sub { set_debug },
+ daemon => 1,
tmp => File::Spec->tmpdir(),
conf => "$FindBin::Bin/../etc/$script.conf",
- logpath => '/var/log',
+ logpath => '/var/local/log',
sleep => 60,
);
next if $createdFile =~ /^\./; # Skip all hidden files
for my $pattern (loadConfig) {
+ debug "Processing pattern $pattern";
+
if ($createdFile =~ /$pattern/) {
+ debug "Matched $createdFile to $pattern";
+
if (-d "$opts{tmp}/$createdFile") {
remove_tree ("$opts{tmp}/$createdFile", {error => \my $err});
} # if
} # for
} else {
- $log->msg(scalar localtime . " $opts{tmp}/$createdFile removed");
+ $log->msg("$opts{tmp}/$createdFile removed");
} # if
} else {
unless (unlink "$opts{tmp}/$createdFile") {
$log->err("Unable to remove $opts{tmp}/$createdFile - $!");
} else {
- $log->msg(scalar localtime . " $opts{tmp}/$createdFile removed");
+ $log->msg("$opts{tmp}/$createdFile removed");
} # if
} # if
-
last;
} # if
} # for
return;
} # FileCreated
+$SIG{USR1} = \&FileCreated;
+
## Main
GetOptions (
\%opts,
'help',
'verbose',
'debug',
+ 'daemon!',
'tmp=s',
'logpath=s',
'conf=s',
- 'sleep=i'
+ 'sleep=i',
+ 'append',
) or pod2usage;
-$log = Logger->new(path => $opts{logpath});
+$log = Logger->new(
+ path => $opts{logpath},
+ timestamped => 1,
+ append => $opts{append},
+);
+
+$log->msg("Starting $FindBin::Script");
-$log->msg(scalar localtime . ": Starting $FindBin::Script");
+# First run through whatever junk is in /tmp
+for (glob "$opts{tmp}/*") {
+ FileCreated($_);
+} # for
my $monitor = File::Monitor->new;
set_debug if $DB::OUT;
-EnterDaemonMode unless $DB::OUT;
+if ($opts{daemon}) {
+ # Perl complains if we reference $DB::OUT only once
+ no warnings;
+ EnterDaemonMode unless defined $DB::OUT or get_debug;
+ use warnings;
+} # if
while () {
$monitor->scan;