ToolConvoyToolConvoyv2.6
DEV

Cron 式を日本語に変換 — cron 式を分かりやすい英語に翻訳

cron 式を分かりやすい日本語に変換します。ローカルタイムゾーンで次の 5 回の実行時刻を表示します。標準 cron と Quartz 構文に対応。

● ローカル動作 · タブ内で生成ページ読み込み以降のツールによる通信:0件

Cron to Human

Translate cron expressions to plain English. Works entirely in your browser — no uploads.

cron 式は、誰もがどこかからコピーはするけれど、記憶から書き起こす人はいない、そんなフォーマットの一つです。5 つのフィールド(分、時、日、月、曜日)は最初にタイプするのは簡単ですが、2 番目のフィールドにステップ値が必要になったり、曜日フィールドに範囲が必要になったりした瞬間、考えるよりチートシートを参照する方が速くなります。本ツールはまさにそのためのチートシートです — 式を貼り付けて、日本語訳を読み、次の実行時刻を本来貼りたかった場所にコピーしてください。

cron 解説ツールを初めて使ったとき、多くの人が驚くのはタイムゾーンです。cron 式にはタイムゾーンが含まれません — 単なる 5 つの数字です。ジョブを実行するデーモンにはタイムゾーンがあり、解説ツールにもタイムゾーン(あなたのブラウザのもの)があり、それらは通常異なります。開発者のローカルタイムで「平日 9 時」と読める式が、別の国のサーバーでは UTC 17:00 に発火したり、開発者のノート PC では午前 2 時に発火したりします。本ツールの次回実行リストはブラウザのゾーンで計算されるため、実際のジョブがサーバー上で動く場合、その時刻はサーバーの時計と一致しません。

式が翻訳された後、次のステップは通常、そのスケジュール自体が妥当かどうかを判断することです。ジョブが毎時のつもりなのにステップ値の読み間違いで 1 日に 12 回しか発火しないなら、式を直してください。日次レポートのために UTC の深夜 0 時に発火させたいなら、解説の先頭に使いたいタイムゾーンを明記してください。そしてスケジュールが今後 24 時間以内の使い捨てタスクなら、cron はまったく不要です — Epoch/Date 変換ツールで単一のタイムスタンプを取得し、at に渡せば済みます。

広告

使い方

  1. cron 式を貼り付ける

    5 フィールドの標準 cron(分 時 日 月 曜日)または 6/7 フィールドの Quartz 式を入力または貼り付けます。入力中にバリデートされ、構文エラーはインラインで表示されます。

  2. 日本語の解説を読む

    各フィールドは個別の行に意味付きで表示されます。`0 9 * * 1-5` は「月曜日から金曜日の 09:00」と読まれます。範囲やステップ値を推測する必要はありません。

  3. 次の 5 回の実行時刻を確認する

    右側のパネルに、その式が発火する次の 5 回の時刻が、ブラウザのローカルタイムゾーンで計算されて表示されます。夏時間の切り替えも正しく処理されます。

よくある質問

Quartz 構文(秒を含む 6 フィールド)に対応していますか?

対応しています。6 フィールドの Quartz 式(先頭に秒)を貼り付けると、ツールが自動的にフォーマットを検出します。年を含む 7 フィールドの Quartz 式にも対応しています。

次回実行のタイムゾーンは何ですか?

ブラウザのローカルタイムゾーンです。次回実行リストの上部ヘッダーに IANA ゾーン名(例: 'America/New_York')が表示されます。サーバー上の cron ジョブはサーバー側のゾーンで実行され、あなたのゾーンではありません。

なぜ `0 9 * * 1-5` がサーバーログでは平日 9 時にならないのですか?

サーバーがおそらく UTC だからです。'America/Los_Angeles' の 9 時は UTC の 17:00 で、UTC の 9 時はロサンゼルスでは午前 2 時です。式自体は正しく、変数はタイムゾーンです。

@daily や @reboot のような特殊文字列も説明できますか?

できます。`@daily`、`@hourly`、`@weekly`、`@monthly`、`@yearly`、`@reboot` を入力すると、ツールが等価な標準 cron フィールドに展開します。

制限事項

  • spring/frost 構文には未対応Quartz の特殊文字 L、W、#(最終日、最近の平日、N 番目の曜日)はトークン化されて説明されますが、次回実行リストは W(最近の日曜日)を処理しません。— 通常の曜日にフォールバックします。
  • cron.d 形式の環境変数は未対応シェル変数(PATH=、MAILTO=、*)を参照する cron 式は解析されません。時間フィールドそのもののみが翻訳されます。
  • 夏時間の切り替えにより「次回実行」が 1 時間ずれる場合がありますローカル時刻 02:30 にスケジュールされたジョブでは、次回実行リストが夏時間を進める夜の発生をスキップする可能性があります。これは OS の cron デーモンが実際に行う動作と一致しています。

プラットフォーム別の注意点

macOS
macOS は vixie cron を使用しており、日と曜日の両方が設定されている場合は OR として扱われます(歴史的な仕様)。本ツールの解説もこの挙動と一致しています。
Linux
ほとんどの Linux ディストリビューションには cronie または vixie cron が搭載されており、いずれも標準の 5 フィールド構文を使用します。systemd タイマー(.timer ファイル)は別の形式を使用し、ここでは扱いません。
Windows
Windows にはネイティブの cron がありません。最も一般的な移植は WSL の cron デーモンで、vixie 構文を使用します。PowerShell のスケジュールタスクは別の XML 形式を使用します。
CLI
本ツールを支える同じライブラリが、Node.js パッケージ(cronstrue)および CLI として利用できます。ビルドログやドキュメントに人間に読める cron を埋め込むのに便利です。
Web
完全にクライアントサイドで動作します。crontab に貼り付ける前に、README や Stack Overflow の回答からコピーした cron 式を素早く検証するのに便利です。
広告
広告