1

1時間ごとにコマンドを実行するcronジョブを設定したいと思います。ただし、このコマンドは午前10時に開始し、午後4時まで1時間ごとに実行する必要があります。このジョブは、これらの時間の間は毎日実行されます。このコマンドは、Perlスクリプトの呼び出しに他なりません。次のcrontabエントリは正常に実行され、1時間ごとにスクリプトが呼び出されます

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

このcronジョブのタイミングを制限して、午前10時から午後4時の間にのみ実行されるようにする方法はありますか?

4

3 に答える 3

6

man 5 crontabあなたの友だちです。(あなたの例はあなたが主張することをしません;/1デフォルトのスキップであり、したがって冗長であり、したがってその仕様は代わりに先頭にあるため、 1に1回実行されます。)*0

0 10-15 * * * your command here

(「10から4の間」は排他的な範囲であるため、16:00に実行したくない場合があるため、15を使用しました。)

于 2012-04-23T05:36:21.043 に答える
0

スクリプトを1時間ごとに実行する場合は、次のようにします。[code] 00 10,11,12,13,14,15,16 * * * cd path_to_file; perl file.pl> path_to_logs / log.txt [/ code]

これは、分が00にヒットし、時間が10 11 12 13 14 15 16のいずれかにヒットすると、スクリプトが実行されることを意味します。

于 2012-04-23T05:35:25.053 に答える
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.
于 2012-04-23T05:36:59.113 に答える