cron.d(/etc/cron.d/など)とcrontabの違いは何ですか?


18

ディレクトリcron.d(のように/etc/cron.d/)とディレクトリの主な違いは何crontabですか?

私の知る限り理解し、1のようなファイルを作成することができます/etc/cron.d/my_non_crontab_cronjobs1が中にそれらを置くのと同じように、その内部で何でも1つの欲求を置くcrontab経由crontab -e

では、2つの主な違いは何ですか?


システム内の場所、およびフォーマット。
ルイFリベイロ

フォーマット?私が見た2つの例から、それは5時間単位の構文を持っているか、またはと混同していcrontabます。
アークティック冷却

回答:


24

違いはDebian cron(8)マンページに詳細に文書化されています。主な違いは、ユーザーごとに1つのファイルを管理するの/etc/cron.dに対して、個別のファイルが読み込まれるcrontabことです。したがって、/etc/cron.dスクリプトの使用内容の管理(自動インストールと更新の場合)、およびcrontabエディターを使用した管理(実際のエンドユーザーの場合)が容易になります。

その他の重要な違いは、すべてのディストリビューションがサポートしているわけではなく/etc/cron.d、ファイルが/etc/cron.d特定の数の要件を満たしている必要があることです(有効なcronジョブ以外):それらはルートが所有し、run-parts命名規則(ドットなし、文字、数字、アンダースコア、ハイフン)。

あなたが使用して検討している場合/etc/cron.d、それは通常の1を検討する価値がある/etc/cron.hourly/etc/cron.daily/etc/cron.weekly、または/etc/cron.monthlyその代わり。


1
そして実際の例では、のアイテムcron.dは通常パッケージのインストールによって追加されcrontabますが、さまざまなファイルは対応するユーザーが作成したものでいっぱいです。IE、certbotまたはletsencryptパッケージはエントリを入れますcron.d-パッケージが利用可能になる前に、sysadmin(root)はrootユーザーcrontabがシェルスクリプトなどを指すようにエントリを追加します。証明書を最新の状態に保つため。
-ivanivan

スティーブンありがとう!毎時/毎週/毎月のcronディレクトリの使用を推奨する理由は何ですか?ところで、なぜmanページがcron(8)と呼ばれているのか、8は何なのか(crontab(1)という名前のcrontabのmanページ)。
アークティクーリング

1
@Arcticooling、参照この質問を説明するために(8)
user4556274

毎時などのディレクトリにより、ジョブの追加が簡単になり(正確な構文を理解する必要はありません)、さらに重要なことに、システムは状況に応じて実際の実行時間を変えることができます。これは、が常にオンになっているとは限らないシステムで特に役立ちますanacron
スティーブンキット

1
hourly|daily|weekly|monthlyディレクトリの欠点は(AFAICT)であり、常にルートとして実行され、より低い特権での実行を直接サポートしないことです。
ilkkachu 2018年

5

私は、主な違いは明白ですと言うでしょう:/etc/crontab/etc/cron.dで、ユーザーごとのcrontabながら、通常のユーザーによって変更されない/var/spool/cronことcrontab、ツールの編集は、あります。(もちろん、cron.allowおよびを前提としcron.denyます。)もちろん、管理者であるシステムでは、どちらでも使用できます。共有システムでは、通常のユーザーは1つしか使用できません。

これに関連するのは、システム全体のファイルの追加フィールド、つまりジョブを実行するユーザー名です。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.