Ежедневная перезагрузка сервера cron?

14

Я хочу создать задание cron, которое выполняет daiy в назначенное время и перезапускает сервер Ubuntu.

Я пытаюсь добавить rebootтолько в cron, но он не работает, тогда как он работает, когда я пытаюсь выполнить его из CLI.

Посоветуйте, пожалуйста, какую команду мне добавить в cron, чтобы он ежедневно перезагружал сервер в определенное время.

Прашант Кумар
источник
Могу я спросить, зачем вам нужно ежедневно перезагружать сервер? Это признак того, что ты делаешь что-то не так. Наверное.
gertvdijk
2
@gertvdijk Я сталкивался с ситуациями, когда нужно регулярно перезагружать машину. Проприетарное программное обеспечение, которое получает серьезную утечку памяти после ~ 30 часов безотказной работы, и тому подобное.
JRG
1
Игровые серверы (кашель) Minecraft (кашель) часто протекают или как-то разбиваются на сотни процессов.
Каз Вулф
этот пост также полезен askubuntu.com/questions/327015/...
Кевин
Если проблема заключается в том, что какое-то приложение со временем теряет память, лучшим решением будет просто перезапустить службу приложения.
Сорен А

Ответы:

26

Вам нужно выполнить следующую команду:

/sbin/shutdown -r now

с корнями. Способ сделать это - использовать crontab пользователя root, а не пользовательский crontab. Перед 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 за его комментарий - отредактированный ответ, включающий полный путь

Клайв ван Хильтен
источник
2
С помощью cron всегда безопаснее использовать полные пути:/sbin/shutdown -r
charlesbridge
1
что делает корень между настройкой времени и командой? не должно ли это быть просто @daily / sbin / shutdown -r сейчас в файле cronfile пользователей root? TIA
Ominus
3
Следующая команда имеет тот же эффект: /sbin/reboot.
Марк Ванхомиссен