crontab -eと/etc/crontabを使用することの違いは何ですか

crontab -eと/etc/crontabを使用することの違いは何ですか

起動時に何かを実行し、cronを使用して再起動をトリガーしたいと思います。

そこでsudo crontab -eコマンドを使用して追加しています。このコマンドは再起動には関係ありません。再起動が常に発生するわけではありません。毎日午前4時に再開したいです。私が追加した行は次のとおりです。

00 4 * * * root /sbin/shutdown -r now >> /var/log/daily-backup.log 2>&1

これで代わりに再起動するように修正しましたが、うまくいく/etc/crontabようです。なぜこれですか?コマンドはrootとして実行されるので、crontab -eは機能しませんか?

ベストアンサー1

これによりcrontab -e修正されます。ユーザーごとcronエントリは通常/var/spool/cron/crontabs/$USERNAME

これは各ユーザーのためであるため、ユーザー名は必要ありません。

だからアイテムは次のようになります

00 4 * * * /sbin/shutdown -r now >> /var/log/daily-backup.log 2>&1

代わりに/etc/crontab(およびのファイル/etc/cron.d/)はシステムcrontabエントリなので、ユーザー名が必要です。

(Debian、RedHat)cronを見ると、何が起こっているのかを確認できます。ジョブが呼び出されると...という行が必要です。これはおそらく「root」コマンドが見つからないという意味です。/var/log/syslog/var/log/crondaily-backup.log

おすすめ記事