如何使cron在ubuntu上每2小时11分钟运行一次



我使用*/58 * * * * /usr/bin/php -f ....每58分钟运行一次。但我需要构建一个每2小时11分钟运行一次的cron。有办法做到吗?

您可以使用at。一旦在系统启动时用at -f /path/script.sh "now + 131minutes"调用,它将在131分钟正常运行时间后启动/path/script.sh。然后,在/path/script.sh中,插入对at的另一个调用。看见http://linux.die.net/man/1/at

这:

*/58 * * * * /usr/bin/php -f ....

不是每58分钟跑一次。正如分钟字段中的*/5在5的倍数的小时后的每一分钟运行一样,*/58在58的倍数的时间后的每分钟运行。换句话说,作业将在00:00、00:58、01:00、01:58、02:00、02:58等时间运行。;两次跑步之间的间隔在58分钟和2分钟之间交替。

除了cron之外,可能还有其他工具可以实现您想要的功能。但如果你想使用cron,你可以有一个每分钟运行一次的作业:

 * * * * * your-wrapper-script /usr/bin/php -f ...

并实现your-wrapper-script,因此它仅在当前时间是131分钟(2小时11分钟)的倍数时才执行其参数。

这个Perl脚本应该可以做到这一点:

#!/usr/bin/perl
use strict;
use warnings;
my $now = time;
my $minutes = int($now/60);
if ($minutes % 131 == 0) {
    system @ARGV; # NOTE: No error detection
}

最新更新