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
редактировать root
Crontab - не твой. Удалите пользовательскую спецификацию, т.е. добавьте следующую строку:
0 4 * * * /sbin/reboot
Но есть также возможность определить cronjobs в файлах ниже /etc/cron.d
, В этом случае синтаксис немного отличается, и первый столбец после спецификации времени должен содержать пользователя, от имени которого должно выполняться задание. Но этот синтаксис применим только к файлам ниже /etc/cron.d
,