我想设置一个每小时执行一次命令的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之间运行?
答案 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.