日本語

開発者ツール · Crontab ジェネレーター

@reboot、@daily、@hourly: cron のニックネーム スケジュールの由来

· 背景

クロン エイリアス スケジュール設定

ブロックされた再起動シンボルの横にある 5 つのフィールドに展開される 7 つの名前付きスケジュール エイリアス
オリジナル ToolAcre ベクトル イラスト

@ 略記は読みやすく、一般的ですが、普遍的ではありません。この投稿では、それぞれが何に展開されるのか、どこから来たのか、@reboot の特殊なケース、および代わりに 5 つのフィールドを書き込む場合について説明します。

@reboot は、ツールが起動イベントではなくカレンダー時刻をプレビューするため拒否されます。

`@reboot` は他のアットマーク フォームと似ていますが、ToolAcre には 5 フィールドのカレンダー拡張がありません。パーサーは、プレビューするスケジュールがないという明示的な理由でこれを拒否します。起動イベントは、このブラウザー ルートが監視も制御もしないマシンまたはサービスのライフサイクルに依存します。

この区別により、次回実行リストが正確に保たれます。カレンダーの別名は、具体的なフィールドや日付になることがあります。再起動エイリアスは、将来の再起動を発明しない限り、現時点から 5 つの将来のウォールクロック候補を生成することはできません。したがって、拒否は空のプレビューまたは捏造されたプレビューよりも正確です。

ニックネームとその展開 — @hourly、@daily、@midnight、@weekly、@monthly、@yearly、@annually の 5 つのフィールドに相当します

サポートされているテーブルは正確です。 `@hourly` は `0 * * * *` になります。 `@daily` と `@midnight` は `0 0 * * *` になります。 `@weekly` は `0 0 * * 0` になります。 `@monthly` は `0 0 1 * *` になります。 `@yearly` と `@annually` を足したものが `0 0 1 1 *` になります。

UI は、値を 5 つの個別のボックスにコピーする前に、受け入れられたエイリアスを解決します。解析すると正規化された 5 フィールドの式が返され、説明ではその解析された形式が使用され、テストはすべてのエイリアスに対して反復されます。したがって、展開は隠された速記ではなく検査可能です。

デーモン起動またはシステム起動動作はモデル化されていません

このパス内のコードはオペレーティング システムの起動イベントを受信しません。デーモンプロセス、ブート識別子、またはサービス依存関係グラフはありません。 `@reboot` がいつ実行されるかについてのワークブックのステートメントは、トークンを意図的に拒否するパーサーからは確立できません。

ターゲットが起動ニックネームをサポートしている場合は、そのターゲットのライフサイクル定義を参照して、安全にテストしてください。 ToolAcre のエラーを機能が普遍的に無効であるという証拠として使用しないでください。また、別の実装のサポートをこのルートがプレビューすべきであるという証拠として使用しないでください。

エイリアスの起源と実装間の広がりには外部の履歴ソースが必要です

ワークブックでは、エイリアスを歴史的な実装に帰し、その広がりについて説明しました。リポジトリには、その主張に関する主要な履歴ソースが含まれていません。これが証明しているのは、現在時制の動作です。`ALIASES` の 7 つのキー、大文字と小文字を区別しない検索、および不明な省略表現の拒否です。

実際のドキュメントとしてはこれで十分です。読者は、どのフォームがここで機能し、何に拡張されるのかを正確に確認できます。来歴は、アーカイブ ソースを使用して後で追加できます。定数名や他の場所での同様の構文の人気から推測すべきではありません。

有効な例: @daily を 0 0 * * * — 明示的な形式で時刻を午前 0 時からずらすこともできる理由

`@daily` を `0 0 * * *` に置き換えると、時間フィールドが公開されます。時間を 0 から 4 に変更すると、`0 4 * * *` が生成され、ツールでは毎日 04:00 として説明されます。明示的な形式は、午前 0 時が意図したウォールタイムではない場合に適しています。

フィールド ボックスを使用すると調整が簡単になり、選択したタイム ゾーンによってプレビューの瞬間が制御されます。コピーされた式には、パーサー結果での展開後にエイリアスが含まれませんが、フィールドが変更されるまで、元のテキストが式全体ボックスに残る場合があります。デプロイメントの前に、実際にコピーされた値を確認してください。

ブート時の順序と依存関係はジェネレーターの外部にあります

起動作業は、多くの場合、ファイル システム、ネットワーク、資格情報、またはその他のサービスに依存します。 ToolAcre には依存関係モデルがないため、準備状況、遅延、または再起動の動作を評価できません。たとえ `@reboot` を受け入れたとしても、式の検証ではこれらの操作上の疑問は解決されません。

起動時の実行をカレンダーのショートカットではなくライフサイクル設計として扱います。ターゲット環境での前提条件と障害処理を文書化します。このジェネレーターは、次回の実時間を実際に計算できる、5 フィールドの繰り返しスケジュールに引き続き適しています。

サービスマネージャーの代替案はここでは評価されません

ワークブックは最新のサービス ユニットを指していましたが、このリポジトリはそれらを構築したり比較したりしません。ソースにはユニット構文、依存関係ディレクティブ、起動テストは含まれません。したがって、この記事では、サポートされていないニックネームのみに基づいて代替を推奨することは避けています。

ターゲットのドキュメントと運用要件からライフサイクル メカニズムを選択します。 ToolAcre の寄与は負の境界です。`@reboot` はプレビュー可能なドメインの外にありますが、通常のカレンダー エイリアスには透過的な 5 フィールドの同等物があります。

要点: ニックネームは固定式の砂糖です — そしてジェネレーターを使用すると、明示的なバージョンを構築してそれを読み返すことができます

エイリアスは、この実装における固定式の簡潔なラベルです。レビューやカスタマイズで位置を確認することが有益な場合は、いつでも展開してください。 `@daily` は魔法ではありません。選択したプレビュー ゾーンの下のすべての制限されていないカレンダー フィールドでは午前 0 時です。

サポートされているリストを使用し、拡張を検査し、必要に応じて真夜中から離れてください。起動イベントの場合は、プレビューできないライフサイクル トリガーをカレンダー ジェネレーターに強制するのではなく、停止してターゲット固有のメカニズムを選択します。その境界は意図的に定められており、テストされています。