Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
16
Help us understand the problem. What is going on with this article?
@kawaz

crontabで奇数分や偶数分などに実行する指定を簡単に書く方法

More than 3 years have passed since last update.

*/2

cron で2分毎にコマンド実行をしたいときって */2 とかって書くことよくありますよね。5分毎なら */5 とか。

1,3,5,7,...

で、よくあるパターンですが2台のサーバがあって、片方は 0,2,4,6,.. のタイミングで実行して、もう一方では 1,3,5,7,... のタイミングで実行したいこともよくありますよね?こういうとき前者は */2 でいいんだけど、後者はカンマで列挙するのが辛い…みたいな思いをすることもしばしば。

1-59/2

実はこれ 1-59/2 って書けば奇数分に実行するっていう意味にになるんですって。20年近く cron 使ってて初めて知りました!

割り算じゃなくてステップ数

1-59/2 の 2 って割り算をして余りがゼロになるかどうかをチェックしてるんだとずっと思ってたんですが、実はこれ範囲値に対するステップ数なんですね。

3n + m

なので、0-59/31-59/32-59/3 みたいに書けば 3n + m 分に実行するなんてことも簡単に出来ちゃいます。

man 5 crontab

実は man 5 crontab をちゃんと読むと最後の方の拡張ってとこにちゃんとサンプル付きで説明が書いてあるんですね。悩む前に man くらいちゃんと読めって事ですね…、反省。

ちなみに man crontab だと crontab コマンドのマニュアルが出てきてしまうので、crontab の書式についてのマニュアルは man 5 crontab ってする必要がありますので注意してください。

ところで man 5 って日本語だとなんだか口に出して読みにくいですよね。脳内で読むだけでもなんかソワソワしちゃうのは僕だけだろうか…。

16
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
16
Help us understand the problem. What is going on with this article?