Perl& Linux呢? :每天和每周运行一个日志阅读器脚本(自动)

时间:2013-06-05 05:56:28

标签: linux perl centos crontab cron-task

我们有一个日志阅读器脚本,例如:

use strict;
use warnings;

my $location = "file.txt";
open LOGFILE, $location;

my $first_line = 1;
my $max_id;

while (<LOGFILE>) {
    if (/item_id:(\d)+/) {
        if ($first_line) {
            $first_line = 0;
            $max_id = $1;
        } else {
            $max_id = $1 if ($1 > $max_id);
        }
    }
}

my $found = $max_id;
print "$found\n";

close LOGFILE;

(代码来自@duskast)

我们需要这个代码每天自动运行,比如每天早上7点,也就是每周运行。

我知道每天运行这个命令或者有一些shell脚本,因为我们在这里使用linux,但我从未使用过该命令。

另外,每周怎么样?这可能是最近7天的总和,所以也许可以用Perl完成?

1 个答案:

答案 0 :(得分:4)

你应该使用cron和crontab。

使用cron的标准格式是:

    Minute Hour Day_of_Month Month Day_of_Week Cmd

正在运行

    25 07 05 * * /home/user/log_reader.pl

每月5日上午7:25(星号允许任何月份)运行任何工作日(星号选择允许的任何工作日)

所以你的cron工作..

    00 6 * * * /home/user/log_reader.pl

每天早上6点开始运行。

这一个,

    00 6 * * 3 /home/user/log_reader.pl

将在一周的第3天上午6:00运行,这意味着每周一次。

希望有所帮助。