Щодня перезавантажувати сервер cron?


15

Я хочу створити роботу cron, яка виконує Daiy у призначений час і перезапустить сервер ubuntu.

Я намагаюся додати rebootлише в cron, але він не працює, тоді як він працює, коли я намагаюся виконати його з CLI.

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


Чи можу я запитати, чому потрібно перезавантажувати сервер щодня? Це вказівка ​​на мене, що ви робите не так. Ймовірно.
gertvdijk

2
@gertvdijk У мене трапляються ситуації, коли вам потрібно регулярно перезавантажувати машину. Власне програмне забезпечення, яке погано просочується в пам'яті після ~ 30 годин роботи, подібні.
jrg

1
Ігрові сервери (кашель) Minecraft (кашель) часто хизується або якимось чином розвивається в сотні процесів.
Каз Вулф

ця публікація також корисна askubuntu.com/questions/327015/…
kevin

Якщо проблема полягає в тому, що деякий додаток просочується пам'яттю з часом, кращим рішенням буде просто перезапустити службу додатків.
Сорен А

Відповіді:


27

Вам потрібно виконати таку команду:

/sbin/shutdown -r now

з корінними пірвілізаціями. Спосіб зробити це - використовувати 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 * * *"). До речі - чому ви хочете щодня перезавантажувати?

EDIT - див. Https://help.ubuntu.com/community/CronHowto для наступного: "Команди Crontab, як правило, зберігаються у файлі crontab, що належить вашому обліковому запису користувача (і виконується з урахуванням дозволу користувача). Якщо ви хочете регулярно запускайте команду, яка вимагає адміністративних прав, редагуйте кореневий файл crontab: sudo crontab -e "

EDIT - завдяки @charlesbridge за його коментар - відредаговану відповідь, щоб включити повний шлях


2
Завдяки cron завжди найбезпечніше використовувати повноцінні шляхи:/sbin/shutdown -r
charlesbridge

1
що корінь робити між налаштуванням дня часу та командою? чи не повинен це бути просто @daily / sbin / shutdown -r зараз у кореневому користувачі cronfile? TIA
Омінус

3
Наступна команда має той же ефект: /sbin/reboot.
Марк Ванхуміссен
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.