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

时间:2012-07-29 02:13:45

标签: ubuntu crontab

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

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

此:

*/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
}