58 lines
1.1 KiB
Perl
58 lines
1.1 KiB
Perl
|
#!/usr/bin/perl -wT
|
||
|
|
||
|
use strict;
|
||
|
use warnings;
|
||
|
|
||
|
use Digest::MD5;
|
||
|
|
||
|
my $DIR_PATH="/var/tmp";
|
||
|
my $PREFIX = "somedemotmpfile";
|
||
|
|
||
|
sub make_file {
|
||
|
my ($filename) = @_;
|
||
|
|
||
|
open my $fh, '>', $filename;
|
||
|
print {$fh} "1" . "\n";
|
||
|
print {$fh} "2" . "\n";
|
||
|
print {$fh} "3" . "\n";
|
||
|
close $fh;
|
||
|
}
|
||
|
|
||
|
sub make_tmpfile {
|
||
|
foreach (1..3){
|
||
|
my $tmpfilename = "$DIR_PATH/$PREFIX-" . Digest::MD5::md5_hex($_ . time() . $$);
|
||
|
make_file($tmpfilename);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
|
||
|
sub clean_tmpfile {
|
||
|
opendir (my $dh, $DIR_PATH) || die "Can not open $DIR_PATH/n";
|
||
|
my @dots=grep { !/^\.+$/ } readdir($dh);
|
||
|
closedir($dh);
|
||
|
|
||
|
foreach my $file (@dots)
|
||
|
{
|
||
|
my $afile = "$DIR_PATH/$file";
|
||
|
my $now = time();
|
||
|
if (-e $afile && $afile =~ m/(^.*$PREFIX.*$)/) {
|
||
|
$afile = $1;
|
||
|
my $mtime = (stat ($afile))[9];
|
||
|
my $margin = $now - $mtime;
|
||
|
print("$afile - Last change: $mtime - now: $now - margin(s): $margin\n");
|
||
|
eval {
|
||
|
unlink $afile;
|
||
|
};
|
||
|
warn $@ if $@;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
sub main {
|
||
|
make_tmpfile();
|
||
|
clean_tmpfile();
|
||
|
}
|
||
|
|
||
|
main();
|
||
|
|