0

古いログ ファイルを削除するための 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;
4

1 に答える 1