実験は、これ0/1が問題であるように思われることを示しています。
0/1 と同等である必要*があります。に置き換える0/1と*、うまくいくはずです。
これが私の実験的なcrontabです:
0/1 * * * * echo 0/1 >> cron0.log
* * * * * echo star >> cron1.log
これは作成しますが、作成cron1.logしませんcron0.log。
これを調べて、なぜ機能しないのかを理解しようとします0/1が、今のところ使用するだけ*で機能するはずです。
アップデート:
このfoo/bar構文は、ほとんどの Linux システムと MacOS X で使用されている Vixie cron 実装に固有のものですが、普遍的ではありません。
毎分コマンドを実行する通常の方法*は、最初のフィールドだけで指定することです。コマンドを 5 分ごとに実行するには、cron でサポートされている場合は、 を指定します*/5。
マニュアルページの内容は次のcrontab(5)とおりです。
ステップ値は、範囲と組み合わせて使用できます。範囲の後に を/<number>指定すると、範囲内での数値の値のスキップが指定されます。たとえば0-23/2、時間フィールドで を使用して、1 時間おきにコマンドを実行するように指定できます (V7 標準の代替手段は です0,2,4,6,8,10,12,14,16,18,20,22)。アスタリスクの後にステップも許可されているため、「2 時間ごと」と言いたい場合は、 を使用して*/2ください。
私は何0/1を意味するのかさえわかりません。
更新 2:
わかりました、これが私が見つけたものです。
フィールド 2 から 5 がすべて*である場合、最初のフィールド (分を指定) を に設定する*と、ジョブは 1 分に 1 回実行されます。 */22 分ごとに*/3実行され、3 分ごとに実行されます。これはすべて予想どおりです。
最初のフィールドを0/1、0/2、またはのいずれかに設定する0/3と、ジョブは正時にのみ実行されます。つまり、単に0.
これは、man ページの説明から私が期待したものではありません。jgritty's answerのウィキペディアの引用:
cron の一部のバージョンでは、「0」などの範囲でない場合、「/」の前の値を受け入れない場合があります。別の方法は、ゼロをアスタリスクに置き換えることです。
少なくとも私が使用している Vixie cron のバージョンでは、完全に正しいとは思えません。これ0/1は文句なしに受け入れられますが、私が期待する意味ではなく、特に有用とは思えません。