【Linux】cronで5分起きにコマンドを実行する

スポンサーリンク

今日はLinux系で定期的に処理を実行するcronの設定についてのTips記事です。
やりたいことは、毎時2分、7分、12分…と2分から5分毎に処理をすることです。
なかなか、ピンポイントな解決方法が探せなかったので、記事にしてみました。

スポンサーリンク

毎時2分に処理をする

まずは、cronの基本ですけど、毎時2分に処理をさせたい時は、以下のように設定します。
2 * * * * command
設定項目の1つ目が"分"の設定なので、このような設定になります。

5分置きに処理をする

続いて、5分置きに処理をさせたい場合ですが、その場合は以下のように設定します。
*/5 * * * * command
この “/5" の部分が5分置きに実行という意味になります。
これを “*/15" にすると、15分置きに実行されることになります。
ただ、この場合は、毎時0分、5分、10分…と0分から5分置きになってしまうので、今回やりたい事とは少し違うのです。

リスト記述で2分から5分置きに実行する

cronでは、実行したい時刻をリスト記述することもできます。
2,7,12,17,22,27,32,37,42,47,52,57 * * * * command
これでも一応、やりたい事は実現できるのですけど…スマートじゃないですよね。
後で2分スタートから、3分スタートにしたい時とか、書き換えが面倒ですし、ミスしやすいです。
正直、こんな設定を他の人には見られたくないです。

範囲設定と組み合わせて実現する

cron設定には、実行時刻を範囲で設定することもできます。
例えば以下のように設定すると、毎時2分から59分まで1分置きにcommandを実行します。
2-59 * * * * command

この設定と、前述の5分置きの設定を組み合わせて以下のように設定すると、スマートになります。
2-59/5 * * * * command
はい、この記述で毎時2分から5分置きにcommandが実行されるようになって、やりたかった事が実現できます。
これなら、他の人に見られても大丈夫そうですね。良かった〜。

ちなみにMacでは…

ちなみにですけど、手持ちのMacでは以下の書き方でも実行できました。
2/5 * * * * command
この方が、個人的にはスッキリするんですけどね。
処理を実行するCentOSではエラーになってしまい、この設定をする事はできませんでした。残念です。

おわりに

cronでの定期実行って、サービスでもそれなりに使う頻度は高いと思います。
そんな時に、変な設定をしちゃうと、後でそれを見た人がびっくりしちゃうので、
なるべく分かりやすくて、ミスの起こりにくい設定をするように心掛けましょうね。

スポンサーリンク

WEB開発Linux

Posted by しむてる