web-dev-qa-db-ja.com

30分ごとにcronジョブを実行するにはどうすればよいですか。

スクリプトを30分ごとに実行するためにcrontabエントリを追加することを検討しています。その時間とその時間の30分経過した時間、またはそれに近いものです。私は以下のものを持っていますが、それは0で動いているようには見えません。

*/30 * * * *

どの文字列を使う必要がありますか?

CronはOSX上で動作しています。

203
Darryl Hein

行う:

0,30 * * * * your_command
458
vladr

crontabは「間隔」を理解しません、それは「スケジュール」を理解するだけです

有効時間:0〜23 - 有効分:0〜59

例1

30 * * * * your_command

これは、「毎時の分時」(1時30分、2時30分、3時30分など)に実行されることを意味します。

例2

*/30 * * * * your_command

これは、「毎時の分が均等に30で割り切れる」のときに実行されることを意味します(1:30、2:00、2:30、3:00などで実行されます)。

0,30 * * * * your_command

これは、「毎時の分または」で実行することを意味します(1:30、2:00、2:30、3:00などで実行されます)。

これは例2と同じ結果を得るためのもう1つの方法です

例4

19 * * * * your_command

これは、「毎時の分= 19」で実行されることを意味します(1:19、2:19、3:19などで実行されます)。

例5

*/19 * * * * your_command

これは、「毎時の分が19で割り切れる」のときに実行されることを意味します(1:19、1:38、1:57、2:19、2:38、2:で実行されます)。 57など)

注:著者を含むさまざまなユーザによってこの投稿にいくつかの改良が加えられました

78
aequalsb

これを試して:

0,30 * * * * your command goes here

公式のMac OS X crontab(5)のマンページ によると、/構文がサポートされています。したがって、なぜそれがあなたにとってうまくいかなかったのかを理解するためには、cronのログを調べる必要があります。これらのログの中で、あなたは明確な失敗メッセージを見つけるべきです

注意:Mac OS XはLinuxやBSDと同じようにVixie Cronを使っているようです。

71
Eddie

CronジョブがMac OS Xでのみ実行されている場合は、代わりにlaunchdを使用することをお勧めします。

From スケジュールされたジョブのスケジュール(公式Appleドキュメント)

注:まだサポートされていますが、cronは推奨される解決策ではありません。 launchdのために廃止予定となりました。

簡単なウェブ検索で追加情報( launchd Wikipedia page など)を見つけることができます。

9
PCheese

あなたはあなたがOS Xを使っていると言います - 私は過去に cronnix を使っています。自分で編集するのと同じぐらいオタクではありませんが、Jiffyのコラムが何であるかを学ぶのに役立ちました。ちょっとした考え。

5
Allyn

'' または divide '/'の両方の記号を使用できます。
しかし、 '/'の方が優れています。
「5分ごと」の場合を想定してください。 ''を使った場合は、cronジョブを次のように書く必要があります。

0,5,10,15,20,25,30,35,....    *      *     *   * your_command

これは、定義されたすべての分に、1時間ごとにyour_commandを実行することを意味します。0、5、10、...

ただし、 '/'を使用すると、次のような簡単で短い仕事を書くことができます。

*/5  *  *  *  *  your_command

これは、5で割り切れる分数、またはより簡単な言葉で「0,5,10、...」でyour_commandを実行することを意味します。

したがって、分割可能な記号「/」は常に最良の選択です。

2
Mohsen Abasi