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
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 root
name__. 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 root
name__, vous devez émettre
Sudo crontab -e
pour éditer la crontab de root
name __ - 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
.