毎日、次のようなログ ファイルを取得します。
/home/ado/log/log.20130605
ログ ファイルには、アイテム ID と ID が販売された回数が含まれます。そして、毎日と毎週のランキングを作っています。
だから私はこのようなログリーダーを持っています
#!/usr/bin/perl
use strict;
use warnings;
use POSIX 'strftime';
my $current_date = strftime "%Y%m%d", localtime;
my $filename = "/home/ado/log/log.$current_date";
open my $file, "<", $filename or die("$!: $filename");
while (<$file>) {
if (/item_id:(\d+)\s*,\s*start/) {
$output{$1}++;
}
}
close $file;
for my $item(keys %output) {
print "$item -> $output{$item}\n";
}
これをDBに保存します。
そして、これを毎日実行するために cron コマンドを使用します。これまでのところ、毎日ランキングを作成するためのすべてが揃っています。
しかし、毎週はどうですか?
これは、一度に 7 つのファイルを読み取る新しいスクリプトを作成することを意味します。
/home/ado/log/log.20130603
/home/ado/log/log.20130604
/home/ado/log/log.20130605
/home/ado/log/log.20130606
/home/ado/log/log.20130607
/home/ado/log/log.20130608
/home/ado/log/log.20130609
そして正規表現を検索します。次に、cron を使用して毎週実行します。
ファイル名が常に変化していることに注意して、1 つではなく 7 つのファイルを読み取るようにスクリプトを変更するにはどうすればよいですか? – adriancdperu 4 分前編集