古いログ ファイルを削除するための PERL スクリプトを作成しようとしています。スクリプトでできるようにしたい重要なことの 1 つは、ディレクトリ、ファイル名 (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;