Debianとその派生について矛盾するように見える次の事実をどのように理解するべきですか?
/etc/crontab
/etc/cron.d/*
ジョブがユーザー(rootまたはルートではない)。ユーザー固有のタスクのタスクと
/etc/crontab
システムタスクではありませんか?/etc/cron.d/*
rootまたはroot以外のユーザーとしてジョブを実行するには、どこにジョブを追加しますか/etc/crontab
?/etc/cron.d/*
/var/spool/cron/crontab/<user>
スティーブンのコメント/etc/cron.dの下のファイルをどのように使用しますか?たくさん説明しましたが、まだ理解できません。
システムタスクは、システム全体に適用されるタスクです。ユーザー固有のタスクは、特定のユーザーに代わって実行されるタスクで、通常はユーザーがログインしたときに手動で実行されますが、特定のファイルのバックアップなど、定期的に自動化したいタスクです。 、リモート開発リポジトリの更新、メール処理、またはミラーリングウェブサイト
ありがとうございます。
答え1
私は次のようなさまざまなcron設定ファイルを使用する傾向があります。
/var/spool/cron/crontab
「実際の」ユーザーが使用する(つまりユーザーは、編集に使用されるシステムを使用する人間に対応しますcrontab -e
。/etc/cron.d
「システム」ユーザー(例えばlogcheck
cronタスクの場合logcheck
)トピックに関する他の質問に対する回答で述べたように、/etc/cron.d
少なくともDebianベースのシステムのソフトウェアパッケージで使用するように設計されています。/etc/crontab
ローカルに定義されたシステムタスクに使用され、rootとして実行されますが、/etc/cron.{hourly,daily,weekly,monthly}
これらのタスクはより便利です。
私の意見では、「ユーザー」は「人がサポートしているユーザー」を意味します(そのように表現することを許可する場合)。私の考えでは、「システムユーザー」(rootなど)で実行されるタスクはシステムタスクです。
Debian パッケージングの観点からは、Debian ポリシーは次のように説明されています。推奨事例クローンの作業情報:要約すると、/etc/cron.{hourly,daily,weekly,monthly}
適切な場合は使用し、/etc/cron.d
そうでない場合は使用してください。したがって、5つのディレクトリすべてでパッケージが提供する作業を見るのは正常です。
答え2
以下のcrontabは、/etc
ルート(または特定のパッケージがインストールされている場合はルートによって暗黙的に)のみ手動で編集できます。これらのcrontabは、通常、システムのサービスに関連するタスクをスケジュールするために使用されます。したがって、これは「システム操作」です。これらのサービスの一部は、root ではなくユーザーとして実行することもできます。
スプールcrontabは/var
ユーザー固有のcrontabです。ユーザーは自分の個人的なcrontabを編集できる必要がありますcrontab -e
(これはおそらくrootにも適しています)。システム内の特定のサービスにバインドされていないユーザー(人間など)は、crontabで自分の代わりにcronジョブを実行する必要はありません/etc
。