web-dev-qa-db-ja.com

cronjobは「/ bin / sh:1:root:not found」と言います

私のcronjobコマンドは以下にあり、このメールは毎日届きます。毎晩サーバー(ubuntu 18.04)を再起動しようとしています。ここでの問題は何ですか?

MAILTO="[email protected]"
30 2 * * 1 /usr/bin/letsencrypt renew >> /var/log/le-renew.log
0 4 * * * root /sbin/reboot
4
goksel

crontab -eを介して作成されたcronjobsは、そのコマンドを発行し、そのcronjobを所有するユーザーとして実行されます。行にユーザーを指定することはできません

0 4 * * * root /sbin/reboot

そのジョブをrootとして実行します。その場合、別のユーザーとして任意のコマンドを実行できます。誰もそれを望みません。

ユーザーrootとしてcronjobを実行する場合は、発行する必要があります

Sudo crontab -e

自分ではなくrootのc​​rontabを編集します。ユーザー仕様を削除します。つまり、次の行を追加します。

0 4 * * * /sbin/reboot

ただし/etc/cron.d以下のファイルでcronjobsを定義する可能性もあります。その場合、構文は少し異なり、時間指定の後の最初の列には、ジョブを実行するユーザーを含める必要があります。ただし、その構文は/etc/cron.d以下のファイルにのみ適用されます。

8
PerlDuck