定期実行のスケジュールをフォームで組み立てて、cron・launchd(macOS)・systemd timer(Linux)の3形式をまとめて生成するツールです。 cron 式を貼り付けて launchd や systemd に変換することもできます。データはサーバーに送信されません。
使い方
- 月・日・曜日・時・分をプルダウンで選ぶ
- 実行するコマンドがあれば入力する(出力に反映される)
- 「生成する」を押すと cron・launchd・systemd timer の3形式が出力される
- タブで形式を切り替え、「コピー」で使いたい形式をクリップボードに取る
- 手元の cron 式(例:
0 9 * * 1-5)を入力する - 「変換する」を押すと launchd と systemd timer の形式に変換される
- 出力タブで形式を切り替え、「コピー」でクリップボードに取る
3つの形式の違い
cron
UNIX 系で広く使われるスケジューラ。「分 時 日 月 曜日」の5フィールドで実行タイミングを指定する。GitHub Actions の schedule も同じ書式を使う。レンジ(9-17)やステップ(*/5)を直感的に書ける。
launchd(macOS)
macOS 標準のプロセス管理。plist(XML)の StartCalendarInterval でスケジュールを指定する。cron と違い、レンジやステップは直接書けない。たとえば「平日の毎時」なら曜日ごとにエントリを並べる必要がある。一定間隔の繰り返しは StartInterval(秒単位)で表現する。
systemd timer(Linux)
systemd が提供するタイマーユニット。OnCalendar にカレンダー式を書く。Mon..Fri *-*-* 09:00:00 のように人間が読める形式で、cron のステップ指定に近い表現もできる。実行ログは journalctl で確認できるので、cron よりデバッグしやすい面がある。
変換時の制約
cron → launchd の変換では、cron の表現力をそのまま持ち込めない場面がある。
- ステップ指定(
*/5など): 純粋な等間隔ならStartInterval(秒指定)で表現する。時間帯の制限がある場合は個別の値に展開して複数エントリにする - レンジ指定(
9-17など): 範囲内の値をすべて列挙した複数のStartCalendarIntervalに展開する - リスト指定(
1,3,5など): 同様に個別エントリへ展開する
この展開の結果、plist が長くなることがある。実際の運用で見づらい場合は、目的に合わせてシンプルな式に組み直すのも手。
よくある質問
- cron と launchd は何が違う?
- cron は UNIX 系で広く使われるスケジューラで「分 時 日 月 曜日」の5フィールドで指定する。launchd は macOS 専用で、plist(XML)の StartCalendarInterval や StartInterval で指定する。launchd はレンジやステップを直接書けないため、複数エントリに展開する必要がある。
- systemd timer とは?
- Linux の systemd が提供するタイマー機能。cron の代替として使われ、OnCalendar にカレンダー式を書いてスケジュールを指定する。ログが journalctl で確認でき、依存関係の管理もできる。
- 入力した内容はサーバーに送信される?
- いいえ。すべての処理はブラウザ内の JavaScript で完結しており、入力データが外部に送られることはない。
- cron式の「*/5」のような指定は launchd に変換できる?
- launchd の StartCalendarInterval はステップ指定に対応していないため、該当する値をすべて列挙した複数エントリに展開して出力する。たとえば「*/5 * * * *」は StartInterval(秒指定)に変換される。