システムcrontab:
/etc/crontab
ルートcrontab:
Sudo crontab -u root -e
どちらの方法が好ましいですか?それらはすべて管理特権内でタスクを実行するため。
/etc/crontab
はシステム全体のcrontabです。
/etc/crontab
の形式は次のとおりです。
# m h dom mon dow user command
* * * * * someuser echo 'foo'
crontab -e
はユーザーごとですが、-u
引数を指定せずにcrontabコマンドを実行すると、現在のユーザーのcrontabに移動します。 crontab -e -u <username>
を実行すると、特定のユーザーのcrontabを編集できます。
ユーザーごとのcrontabには「ユーザー」フィールドがないことに注意してください。
# m h dom mon dow command
* * * * * echo 'foo'
混乱する可能性のあるcrontabの特徴は、rootにも独自のcrontabがあることです。例えばcrontab -e -u root
は編集しません/etc/crontab
cronの構成 を参照してください。
Linuxディストリビューションでは、ユーザーごとにcrontabsは通常次の場所に格納されます:/var/spool/crontabs/<username>
参照
https://superuser.com/questions/290093/difference-between-etc-crontab-and-crontab-e
/etc/cron.d(およびその兄弟cron.daily/weekly/monthly)は、すべてのシステムcrontabに推奨されます。/etc/crontabを変更する必要はありません。
物事を管理または自動化する場合は、機能に基づいて複数のファイルのcronエントリを分離することが不可欠です。 /etc/cron.dの下のファイルは、パッケージやpuppetやchefなどの構成管理ツールによって簡単に管理できます。ルートのcrontab OTOHは、人間以外の人が実際に保守することはできません。
つまり、システム関連のものには/etc/cron.*を使用できます。 rootユーザーにしてもらいたいことがある場合は、rootのcrontabを使用します。/etc/crontabはそのままにして、パッケージで管理する必要があります。