我正在尝试创建一个 PERL 脚本来删除旧的日志文件。我希望脚本能够做的关键事情之一是允许我传递目录、文件名(例如 test.log-*)和文件年龄的参数。
自从我使用 PERL 以来已经有一段时间了,而且我也不是那么好,所以我会很感激一些帮助。我对 getopt::long 模块也不是很熟悉。到目前为止,这是我的想法,虽然我确定它不正确,但请给我任何可能有帮助的反馈。
我想按照“script.pl --dir /release/logs --type test.log-* --days 7”的行运行脚本
#!/usr/perl
use strict;
use warnings;
use Data::Dumper;
use Getopt::Long;
my $file;
my ($dir,$type,$days);
GetOptions( 'dir' => \$dir,
'type' => \$type,
'days' => \$days);
foreach my $file (<$dir/$type>){
if (-M $file < $days) {
print "\n Deleting log more than '$days' old:".$file;
unlink $file;
# or die "\n Failed to remove $file";
}
}
exit;