コンテンツにスキップ

16-2 目覚ましの設定(cron 式)

Plan: Free費用: 0円Wrangler 4.126.0公式ドキュメント取得日 2026-08-27
cron 式は分・時・日・月・曜日の五つの欄で鳴る時刻を決めます。

目覚まし時計を置いたら、次は何時に鳴らすかを決めます。家の目覚ましなら針を合わせるだけですが、店の目覚ましは「毎日この時刻」「毎月 1 日だけ」のように、繰り返しの条件まで決められます。

その条件は、五つの欄が並んだ設定盤に書きます。欄の順番と、そこに書ける記号さえ分かれば、たいていの時刻は自分で書けます。

いま読んでいるこのサイト(Cloudflare Lab)が必要としているのは「毎日 1 回」だけですが、書き方を知らないと、意図せず 1 分おきに鳴らしてしまうこともあります。

ここでは、五つの欄、公式の見本、時刻の基準、間違えやすい書き方の順に見ます。

Learning goals

この節でできるようになること

  • 五つの欄が左から何を表すかを言える
  • アスタリスクとスラッシュの意味を説明できる
  • 時刻が UTC で読まれることを説明できる
  • 曜日の番号の数え方が他と違う点を言える

設定盤には、左から順につまみが五つ並んでいます。それぞれ「何分」「何時」「何日」「何月」「何曜日」を表します。

Cloudflare では、この五つの欄を並べた文字列を cron 式と呼びます。公式は、五つの欄からなる書き方に対応し、Quartz scheduler に似た書き方の拡張のほとんども使えると説明しています。欄ごとに、書ける値と記号は次のとおりです。

  • 分(Minute): 0〜59、記号は * , - /
  • 時(Hours): 0〜23、記号は同じ 4 つ
  • 日(Days of Month): 1〜31、記号に L W が加わる
  • 月(Months): 1〜12、JAN aug のような 3 文字の略語も可(大文字小文字は問わない)
  • 曜日(Weekdays): 1〜7、MON fri のような 3 文字の略語も可、記号に L # が加わる
cron 式は左から分・時・日・月・曜日の順に並びます。

つまみが左から分・時・日・月・曜日の順に並んでいます。順番を入れ替えると別の時刻になります。

つまり、cron 式は五つの欄の並びで、欄ごとに書ける値と記号が決まっています。

記号のうち、まず覚えるのは二つです。*(アスタリスク)は「その欄は毎回」、/(スラッシュ)は「何おきに」を表します。

公式は、よく使う間隔として次の見本を挙げています。読めなくても大丈夫です。左が設定、右が鳴る時刻です。

* * * * * 毎分
*/30 * * * * 30 分おき
45 * * * * 毎時 45 分
0 17 * * sun 日曜の 17:00(UTC)
10 7 * * mon-fri 平日の 07:10(UTC)
0 15 1 * * 毎月 1 日の 15:00(UTC)
59 23 LW * * 毎月最後の平日の 23:59(UTC)

-(ハイフン)は mon-fri のように範囲を、,(カンマ)は複数の値を並べます。L は「最後の」、W は「平日」の意味で、LW は「最後の平日」になります。

アスタリスクは「毎回」、スラッシュは「何おきに」を表します。

同じ設定盤でも、記号の入れ方で鳴る回数がまったく変わります。* を並べると毎分鳴ります。

つまり、* は毎回、/ は間隔で、見本を組み合わせれば大半の時刻は書けます。

ここが最初の落とし穴です。設定盤に書いた「0 時」は、店のある土地の 0 時ではありません。

公式は、Cron Triggers は UTC の時刻で実行されると明記しています。UTC(協定世界時)は世界共通の基準となる時刻で、公式の見本にも 17:00 (UTC) のように毎回 UTC と添えられています。

実物では、0 0 * * * と書くと UTC の 0 時に鳴ります。手元の時計で何時にあたるかは土地によって違うので、鳴らしたい現地時刻から逆算して欄に書きます。

目覚ましの時刻は UTC で読まれるので、手元の時計とはずれます。

壁に二つの時計が並び、針の位置が違います。設定盤が見ているのは左の UTC の時計だけです。

つまり、時刻はすべて UTC で書き、現地の時刻との差は自分で引き算します。

同じ五つの欄でも、別の仕組みとは数え方が違う部分があります。ここを知らないと、1 日ずれた曜日に鳴ります。

公式は、曜日を 1 = 日曜から 7 = 土曜で数えると説明しています。これは 0 = 日曜、6 = 土曜で数える別の仕組みとは違います。公式は、紛らわしさを避けるために 1 ではなく SUN のような 3 文字の略語を使うことを勧めています。

記号にも欄ごとの違いがあります。LW は日の欄、L# は曜日の欄でだけ使えます。どの欄でも同じ記号が使えるわけではありません。

つまり、曜日は略語で書き、記号は使える欄を確かめてから書きます。

ここで紹介した書き方が、いま読んでいる Cloudflare Lab でどう使われるかを見ます。

Cloudflare Lab は Phase 4 で、1 日 1 回の見回りを 0 0 * * *(UTC の 0 時ちょうど)で登録する予定です。読者が少ない時間帯に寄せる案もあり、実際に採用した設定と、その理由は実装後に追記します。

  • cron 式は分・時・日・月・曜日の五つの欄です。
  • * は毎回、/ は間隔を表し、公式の見本を組み合わせれば書けます。
  • 時刻は UTC で読まれ、曜日は 1 = 日曜から数えます。

この節で出てきた言葉を、つながりの順に並べると次のようになります。

図のラベル: 鳴らしたい時刻 / 五つの欄 分 時 日 月 曜日 / 記号で書く * は毎回 / は間隔 / 公式の見本 0 15 1 * * など / 時刻の基準は UTC / 現地時刻から逆算する

次の節では、鳴ったときに開かれるマニュアルの章を書きます。

この節のチェック

問 1cron 式の五つの欄は、左から何の順に並びますか?

問 2「*/30 * * * *」は公式の見本ではどの間隔ですか?

問 3書いた時刻はどの基準で読まれますか?

問 4曜日の欄の数え方として公式に沿うものはどれですか?

問 5公式の見本で「0 15 1 * *」はいつ鳴りますか?

最終更新日: