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


224

私はcrontab、30分ごと、正時および正時の30分後にスクリプトを実行するエントリを追加しようとしています。次のものがありますが、0で実行できないようです。

*/30 * * * *

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

cronはOSXで実行されています。


crontabを機能させることに成功しましたか?あなたの問題はcrontabではないかもしれませんが、それを使用することです。
エディ

1分ごとに2つの他のスクリプトを実行しています。
ダリルハイン

1
以下の答えのいずれかが機能するかどうかを確認するために待っています。次の30分が終わるまで待つ必要があります... 3分後。
ダリルハイン

2
... 0,30を0,5に変更できませんか?0,5が機能する場合、なぜ0,30にならないのですか?
ジョージストッカー

1
それがその時間にうまくいったかどうか、あなたは決して私たちに話しませんでした!
Eddie、

回答:


487

行う:

0,30 * * * * your_command

1
よく働く!CentOSのcrontabでは、私が0,30 * * * * root your_command使用しているユーザーがrootになるようにする必要がありました。
プログラハンマー2014年

@prograhammer-この行は、ルートのcrontabまたは他のユーザーのcrontabの一部でしたか?
MuhamedHuseinbašić2017年

@MuhamedHuseinbašić良い質問です。2つの異なるcrontab(グローバルなものとユーザーのもの)があるためです。確認して見る必要があります...
プログラハンマー2017年

100

crontabは「間隔」を理解せず、「スケジュール」のみを理解します

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

例#1

30 * * * * your_command

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

例#2

*/30 * * * * your_command

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

例#3

0,30 * * * * your_command

これは、「毎時の分が0または30のときに実行する」を意味します(実行時間 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などで実行される)を意味します

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


76

これを試して:

0,30 * * * * your command goes here

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

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


私は常に* / 30を使用して成功してきましたが、1時間に1回しか実行しない場合に非常に重要だった私のアプリケーションを思い出したことはありません。
Adam Hawes、

2
@Adam Hawes:過去にも成功した* / xxを使用しましたが、Linuxや他のUNIXでも使用しました。私は個人的にMac OSXを試したことはありません。元の質問では、どのOSかはわかりませんでした。一部の古いUNIXは* / xxをサポートしていません
Eddie

あなたの答えもうまくいきましたが、ヴラドは担当者が少ないので、私は彼にポイントを与えました。
ダリル・ハイン

1
@DarrylHein笑、今日のエディは担当者が少ない:-p。私はエディに賛成です。
2014年

10

cronジョブがMac OS Xでのみ実行されている場合は、代わりにlaunchdを使用できます。

以下からの定期的なジョブのスケジュールを設定(Appleの公式ドキュメント)

注:まだサポートされていますが、cronは推奨されるソリューションではありません。launchdを支持して非推奨になりました。

簡単なWeb検索で追加情報(起動したWikipediaページなど)を見つけることができます。


5

OS Xを使用しているとおっしゃっていますが、私は過去にcronnixを使用しました。自分で編集するほどマニアックではありませんが、簡単に列が何であるかを知るのに役立ちました。ちょっとした考え。


これはそれ以外の場合にも役立ちます。
ダリルハイン

3

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

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

これは、定義されたすべての分で毎時間your_commandを実行することを意味します:0,5,10、...

ただし、「/」を使用すると、次の簡単で短いジョブを記述できます。

*/5  *  *  *  *  your_command

これは、your_commandを5で割り切れる分またはより単純な単語「0,5,10、...」で実行することを意味します。したがって、割り算可能な

記号「/」が常に最良の選択です。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.