每天我都会收到一个日志文件,例如:
/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";
}
我将其保存在数据库中。
我每天都使用 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 每周运行它。
如何修改脚本以读取 7 个文件而不是 1 个文件,注意文件名不断变化?– adriancdperu 4 分钟前 编辑