Я хочу создать задание cron, которое выполняет daiy в назначенное время и перезапускает сервер ubuntu.
Я пытаюсь добавить reboot
только в cron, но он не работает, тогда как он работает, когда я пытаюсь выполнить его из CLI.
Посоветуйте, пожалуйста, какую команду мне добавить в cron, чтобы он ежедневно перезагружал сервер в определенное время.
Вам нужно выполнить следующую команду:
/sbin/shutdown -r now
с корневыми pirviliges. Способ сделать это - использовать crontab пользователя root, а не пользовательский crontab. A sudo
перед обычной командой crontab делает это:
sudo crontab -e
Совет: Вы можете переключить стандартный редактор оболочки для таких вещей, как crontab
и visudo
с помощью sudo update-alternatives --config editor
(и затем выберите редактор по вашему выбору.
Редактируя crontab, вы должны добавить в свой файл следующую строку:
# For more information see the manual pages of crontab(5) and cron(8)
#
# m h dom mon dow command
@daily root /sbin/shutdown -r now
Здесь "@daily" - это сокращение для каждого дня в полночь (эквивалентно " 0 0 * * * "). Кстати - зачем вам ежедневная перезагрузка?
РЕДАКТИРОВАТЬ - см. https://help.ubuntu.com/community/CronHowto для следующее: «Команды Crontab обычно хранятся в файле crontab, принадлежащем вашей учетной записи пользователя (и выполняются с уровнем разрешений вашего пользователя). Если вы хотите регулярно запускать команду, требующую прав администратора, отредактируйте корневой файл crontab: sudo crontab -e «
РЕДАКТИРОВАТЬ - спасибо @charlesbridge за его комментарий - отредактированный ответ, включающий полный путь