日本語

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

バージョン 7 Unix から Vixie cron へ: cron の短い歴史

· 背景

クロン 履歴 ソフトウェア証拠

証拠の境界を示す閉じたアーカイブ ボックスの横にある 5 つのフィールドの式
オリジナル ToolAcre ベクトル イラスト

cron は、現在でも日常的に使用されている最も古いデーモンの 1 つです。この記事は、1970 年代の Unix の単一のシステム全体のファイルから、ユーザーごとの crontab を経て、現在でもほとんどの Linux システムが派生している Paul Vixie の書き換えまでをたどります。

リポジトリは、cron の歴史的な継続性ではなく、現在の 5 フィールド モデルを示しています。

ToolAcre は、現在の JavaScript でよく知られている 5 フィールドのスケジュールをモデル化します。この事実は、1970 年代の特定のデーモンから現代のすべてのホストへの回線が中断されないことを証明するものではありません。実用的な文法と歴史的物語は異なる証拠製品であり、リポジトリには前者のみが詳細に含まれています。

ソース コメントでは日フィールド ルールを Vixie スタイルと呼んでいますが、コメントは Unix リリースのアーカイブではありません。したがって、この記事では、安定しているように見えるインターフェイスを、なぜ cron が生き残ったのか、またはリーダーのデーモンがどのコードベースから派生したのかについての主張に変えることに抵抗します。起源を考え出さなくても、行動は正確になる可能性があります。

バージョン 7 実装の詳細には外部の一次ソースが必要です

ワークブックのバージョン 7 セクションには、1 つのファイルと 1 分に 1 回の読み取りサイクルが指定されています。バージョン 7 ソース、マニュアル、スキャンは記事ソース内に保存されません。 ToolAcre 独自の微細な解像度では、これらの過去の実装の詳細を個別に検証することはできません。

責任ある履歴では、主要なマニュアルまたはソース ツリーが引用され、発行日とその後の記憶が区別されます。その研究が存在するまで、このセクションは省略を記録します。読者は、事実として提示された出典のない起源の話を受け取らなくても、テストされたコードから 5 つのフィールドを学ぶことができます。

System V の系統とポリシーの機能はここでは証明されていません

ユーザーごとの crontab、コマンド、またはポリシー リストを追加する System V に関する主張にも、同様に外部ドキュメントが必要です。ブラウザー コードには許可リストや拒否リストがなく、ユーザー crontab マネージャーもありません。後のシステムにおける同様の用語では、機能が最初に登場した時期を特定することはできません。

この修正は執筆契約に従っています。概要は概要であり、出典ではありません。この記事では、別の包括的な文章を黙って置き換えるのではなく、どのような証拠が必要になるかを述べています。歴史的範囲は、後で一次資料が `sources` に追加され、直接読み取られるときに拡張できます。

Vixie の帰属はコメントに表示されますが、日付とリリースの出典は記載されていません

実装では、OR の動作を説明するときに Vixie cron という名前を付け、6 フィールドのスケジューラ スタイルを拒否します。これには、リリース アーカイブ、1987 の引用、またはバージョン 3.0 の変更ログは含まれません。したがって、これらの日付とマイルストーンはワークブックから繰り返されません。

コード レベルの要求はより狭いです。両方の日付フィールドが制限されている場合、ToolAcre は `monthMatch || weekMatch` を返し、ユーザーに警告し、説明に「または」と表示します。その動作は完全にテスト可能です。コメントを超えた帰属は、背景セクションの穴埋めではなく、研究課題のままです。

子孫の実装はこのコードベースの外にあります

cronie、dcron、fcron、bcron、BusyBox などの名前は外部プロジェクトを識別しますが、ここではインポートまたはテストされません。 ToolAcre は、ホストがどのエイリアスを使用するか、すべてのエイリアスを受け入れるかどうか、または時間の遷移をどのように処理するかを判断できません。子孫を列挙すると、比較研究が行われなかったことを意味することになる。

移植性が重要な場合は、ターゲットの実装を直接検査してください。受け入れられるフィールド数、名前、および演算子は運用上の事実です。系図は違いを説明するのに役立ちますが、ターゲットの現在のマニュアルや無害な検証テストの代わりになるべきではありません。

ToolAcre に残ったもの: 5 つの順序付けされたフィールドとテストされた文法

リポジトリが確立するものは重要です。フィールドは、分、時間、日、月、曜日の順に並べられます。数値範囲は明示的です。月名と曜日名は大文字と小文字を区別せずに受け入れられます。日曜日 7 は 0 に正規化されます。範囲、リスト、ステップは、ソートされた一意の値に展開されます。

パーサーは、`@reboot` を除く 7 つの名前付きエイリアスもサポートし、特定のエラーを生成し、不可能な日付と論理和の日付フィールドについて警告し、英語をレンダリングし、選択したゾーンでの今後の実時間を計算します。その現代の契約は、歴史的な装飾とは関係なく、正確な文書化に値します。

anacron と systemd はジェネレーターの外側に残ります

anacron 構成または systemd カレンダー パーサーはツールに表示されません。これらのシステムを、保管庫の証拠だけで進化の後継者または代替物として位置付けることはできません。一般的に比較した場合でも、実行ミス、依存関係、およびログ動作には別のソースが必要です。

ToolAcre が 6 つのフィールドとサポートされていない演算子を拒否したことは、それらのシステムに関する判断ではありません。単に 1 つの文法を保護するだけです。代替案に関する記事は、crontab 式の形状から機能を推測するのではなく、その実装とドキュメントから始める必要があります。

要点: 動作については実装証拠を使用し、履歴については一次ソースを使用する

技術履歴には、コードのドキュメントと同じ規律が必要です。主張は、実際にそれを述べている資料まで追跡できる必要があります。ここで信頼できる話は、ジェネレーターの現在の動作と、ワークブックの年表に関するアーカイブ証拠が明示的に欠如していることです。

ToolAcre を使用して、テストの対象となる 5 つのフィールドの構文を構築および検査します。後で履歴を公開する場合は、一次ソースを追加し、日付を確認し、関連する実装を区別します。サポートされていないマイルストーンを省略することは、読者が監査できない流暢な物語よりも正確です。