web-dev-qa-db-fra.com

cronjob dit "/ bin / sh: 1: racine: non trouvé"

Ma commande cronjob est ci-dessous et je reçois cet email quotidiennement. J'essaie de redémarrer le serveur (Ubuntu 18.04) tous les soirs. Quel est le problème ici?

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

Les cronjobs créés via crontab -e sont exécutés sous le nom d'utilisateur qui lance cette commande et qui est donc propriétaire de ce cronjob. Vous ne pouvez pas fournir d'utilisateur dans la ligne

0 4 * * * root /sbin/reboot

pour que ce travail soit exécuté sous le nom rootname__. Si c'était le cas, on pourrait exécuter des commandes arbitraires en tant qu'utilisateur différent. Personne ne voudrait ça.

Lorsque vous souhaitez exécuter une tâche cron en tant qu'utilisateur rootname__, vous devez émettre

Sudo crontab -e

pour éditer la crontab de rootname __ - pas la vôtre. Supprimez la spécification utilisateur, c’est-à-dire ajoutez la ligne suivante:

0 4 * * * /sbin/reboot

Mais il est également possible de définir des tâches cron dans les fichiers ci-dessous /etc/cron.d. Dans ce cas, la syntaxe est un peu différente et la première colonne après la spécification de l'heure doit contenir l'utilisateur en tant que destinataire du travail. Mais cette syntaxe ne s'applique qu'aux fichiers inférieurs à /etc/cron.d.

7
PerlDuck