我想设置一个每小时执行一次命令的cron作业。但是,我希望这个命令应该在10点开始,并且应该每小时运行一次直到4点。这项工作是在这些时间之间每天运行。该命令不过是对Perl脚本的调用。以下crontab项运行正常并每小时调用脚本设置cron作业结束时间
* */1 * * * cd path_to_file; perl file.pl> path_to_logs/log.txt
有没有办法限制此cron作业的时间,以便它只在10 A.M和4 P.M之间运行?
我想设置一个每小时执行一次命令的cron作业。但是,我希望这个命令应该在10点开始,并且应该每小时运行一次直到4点。这项工作是在这些时间之间每天运行。该命令不过是对Perl脚本的调用。以下crontab项运行正常并每小时调用脚本设置cron作业结束时间
* */1 * * * cd path_to_file; perl file.pl> path_to_logs/log.txt
有没有办法限制此cron作业的时间,以便它只在10 A.M和4 P.M之间运行?
man 5 crontab
是你的朋友。 (您的例子不这样做你要求它做什么; /1
是默认的跳跃,因此多余的,因此该规范每分钟一旦由于领先*
运行的0
代替)
0 10-15 * * * your command here
(我使用15,因为它发生在我之间,“10到4之间”是一个独占范围,所以你不想在16:00运行。)
如果您希望脚本每小时运行一次,您可以这样做: [code] 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该脚本将运行
在你的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.
Ur方式也是正确的。它简单,快速和方便。谢谢你的帮助。欣赏它:) – Deepak 2012-04-23 06:32:48
在下午4点再添加一个cron作业会杀死它吗? – zmccord 2012-04-23 05:33:54