
2つの目的の違いは何ですか?
/etc/crontab
- ファイルの下
/etc/cron.d/
/var/spool/cron/crontabs/root
クローンタスクを追加したい場合は、どのファイルに追加しますか?
cron(8) マンページには次の内容があります。
/etc/cron.d/: システム cronjob を含むディレクトリさまざまなユーザーのための保存。
「他のユーザーのためのストア」とはどういう意味ですか?と似ています/var/spool/cron/crontabs/
。
https://unix.stackexchange.com/a/478581/674cronのマニュアルページから引用:
通常、システム管理者は/etc/cron.d/を使用せず、標準システムcrontab /etc/crontabを使用する必要があります。
システム管理者は場所を/etc/crontab
、またはに追加する必要がありますか?/etc/cron.d/
/var/spool/cron/crontabs/root
ありがとうございます。
答え1
/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
スクリプトを作成する必要があります。編集する /etc/crontab
同じことをすると、もっと難しくて間違っている可能性があります。
/var/spool/cron/crontabs
それはコマンド管理に関するものですcrontab
。
だから...
cronジョブがパッケージによって配布される場合、パッケージはファイルを/etc/cron.d/
.Enterpriseオートメーションツールに配置する必要があります。
システム管理者(または他のユーザー)がcronジョブを追加したい場合は、そのジョブが配置されcrontab -e
ます。/var/spool/cron/crontabs/