の目的の違いは何ですか
/etc/crontab
/etc/cron.d/
以下のファイル/var/spool/cron/crontabs/root
Cronジョブを追加する場合、どのファイルに追加しますか?
cron(8)のマンページは言う
/etc/cron.d/:さまざまなユーザー用に保存されたシステムcronjobsを含むディレクトリ。
「ユーザーごとに保存」とはどういう意味ですか? /var/spool/cron/crontabs/
の下のファイルと混同しているように見えます。
https://unix.stackexchange.com/a/478581/674 cronマンページからの引用:
一般に、システム管理者は/etc/cron.d/を使用するのではなく、標準のシステムcrontab/etc/crontabを使用する必要があります。
システム管理者は/etc/crontab
、/etc/cron.d/
または/var/spool/cron/crontabs/root
にジョブを追加しますか?
ありがとう。
/etc/crontab
は、「システム」ジョブの履歴の場所です。これは必ずしもすべてのシステムで使用されるわけではありません(たとえば、RedHat 7および派生物には「空の」エントリがあります)、またはcron.daily
などを呼び出すコマンドがある場合があります。
/etc/cron.d/*
は基本的に/etc/crontab
と同じですが、別々のファイルに分割されます。これにより、パッケージで新しいcronエントリを簡単に追加できます。このディレクトリに置いてください。
たとえば、CentOS 7では次のようになります。
% rpm -ql sysstat | grep cron
/etc/cron.d/sysstat
% Sudo cat /etc/cron.d/sysstat
# Run system activity accounting tool every 10 minutes
*/10 * * * * root /usr/lib64/sa/sa1 1 1
# 0 * * * * root /usr/lib64/sa/sa1 600 6 &
# Generate a daily summary of process accounting at 23:53
53 23 * * * root /usr/lib64/sa/sa2 -A
これらのエントリが/etc/crontab
にあるものと一致することがわかります。
cron.d
が設計される前は、スクリプトはedit/etc/crontab
を実行して同じ作業を行う必要がありました。
/var/spool/cron/crontabs
は、crontab
コマンドによって管理されるものです。
そう...
Cronジョブがパッケージによってデプロイされる場合、パッケージはファイルを/etc/cron.d/
に配置する必要があります。エンタープライズ自動化ツールでもそれが可能です。
システム管理者(または他のユーザー)がcrontab -e
を使用してcronジョブを追加する場合、/var/spool/cron/crontabs/
に入れられます