设置cron作业结束时间

时间:2012-04-23 05:32:09

标签: crontab

我想设置一个每小时执行一次命令的cron作业。但是,我希望这个命令应该在上午10点开始,并且应该每小时运行一次,直到下午4点。这项工作是在这些时间之间每天运行。该命令只是对Perl脚本的调用。以下crontab条目运行正常,并且每小时调用一次脚本

* * / 1 * * * cd path_to_file; perl file.pl> path_to_logs / log.txt的

有没有办法限制此cron作业的时间,使其仅在10 A.M到4 P.M之间运行?

3 个答案:

答案 0 :(得分:6)

man 5 crontab是你的朋友。 (您的示例没有按照您的要求执行; /1是默认跳过,因此是多余的,因此该规范每分钟运行一次,因为前导* 0。)

0 10-15 * * * your command here

(我使用了15,因为我觉得“10到4之间”是一个专属范围所以你不想在16:00运行。)

答案 1 :(得分:0)

如果您希望每小时运行脚本,您可以执行以下操作: [码] 00 10,11,12,13,14,15,16 * * * cd path_to_file; perl file.pl> path_to_logs / log.txt中 [/代码]

这意味着当分钟达到00且小时达到10 11 12 13 14 15 16中的任何一个时,脚本将会运行

答案 2 :(得分:0)

在Perl脚本中(或在Perl脚本的包装器中),您可以使用localtime检查小时,如果不是在上午10点到下午4点之间退出:

use strict;
use warnings;

my @lt=localtime;
my $hour=$lt[2];

unless($hour>=10 and $hour<=16)
{
  print "Not between 10am and 4pm.  Exiting.\n";
  exit;
}

#put the rest of your code here.