cronjob говорит: "/bin/sh: 1: root: not found"

Моя команда cronjob находится ниже, и я получаю это письмо ежедневно. Я пытаюсь перезагрузить сервер (Ubuntu 18.04) каждую ночь. В чем здесь проблема?

MAILTO="ggeeeryit@gmail.com"
30 2 * * 1 /usr/bin/letsencrypt renew >> /var/log/le-renew.log
0 4 * * * root /sbin/reboot

1 ответ

Решение

Cronjobs, созданные с помощью crontab -e запускаются как пользователь, который выдает эту команду и, следовательно, владеет этим cronjob. Вы не можете поставить пользователя в строке

0 4 * * * root /sbin/reboot

чтобы эта работа выполнялась как root, Если бы это было так, можно запускать произвольные команды от имени другого пользователя. Никто не хотел бы этого.

Когда вы хотите запустить cronjob как пользователь root вы должны выпустить

sudo crontab -e

редактировать rootCrontab - не твой. Удалите пользовательскую спецификацию, т.е. добавьте следующую строку:

0 4 * * * /sbin/reboot

Но есть также возможность определить cronjobs в файлах ниже /etc/cron.d, В этом случае синтаксис немного отличается, и первый столбец после спецификации времени должен содержать пользователя, от имени которого должно выполняться задание. Но этот синтаксис применим только к файлам ниже /etc/cron.d,

Другие вопросы по тегам