Как перезагрузить компьютер в определенное время?

18

Можно ли перезагружать мой Raspberry Pi в полночь каждую ночь? Я знаю, что в Linux вы бы использовали crontab, но я не могу найти /etc/crontab.

Phorce
источник
На самом деле, вам нужно сначала создать каталог / var / spool. Понятия не имею почему. Попробуйтеmkdir /var/spool
Эллиот А.

Ответы:

28

Чтобы отредактировать корневой crontab:

sudo -i
crontab -e

поместите записи, которые вы хотите в; crontab загружает удобный шаблон, который показывает, какие поля есть что. Как только вы закончите и сохранитесь из редактора crontab:

exit

чтобы вернуться к пользовательской оболочке.

Для перезагрузки машины в полночь и 8 утра вам понадобится строка:

0 0,8 * * * reboot

хотя на самом деле Linux не нужно сильно перезагружать, если вообще нужно.

scruss
источник
7
Почему вы создали отдельную оболочку суперпользователя для запуска crontab? Почему нет sudo crontab -e?
Алекс Чемберлен
2
@AlexChamberlain - Да, лучше не поощрять людей запускать корневую оболочку, если только это не является абсолютно необходимым, но, по крайней мере, предложите scruss,exit когда вы закончите.
Марк Бут
@MarkBooth Полностью согласен. ИМХО sudoследует отказаться от запуска su. Конечно, будет миллион способов обойти это (в том числе -i), но, по крайней мере, вам придется приложить больше усилий для запуска rootоболочки.
Алекс Чемберлен
Я создал новую оболочку root, потому что sudo не дает вам всех привилегий и среды root. Я хотел убедиться, что пользователь действительно редактирует crontab root. Cron достаточно хитрый со своими настройками SHELL и PATH, поэтому я хотел, чтобы одна вещь пошла неправильно.
scruss
1
Нет, новый crontab устанавливается сразу после выхода из редактора. Чтобы проверить, сделай crontab -l. Но на самом деле, я все еще не понимаю, почему вам нужно так часто перезагружаться. Linux не нуждается в этом, и если вы не тестируете новые ядра, вы можете поддерживать систему в рабочем состоянии. Мой домашний сервер проработал 415 дней, и он радостно пускался в ход без проблем.
scruss
5

Вы пытались добавить запись с

 crontab -e

Похоже, у вас нет записей в crontab и, следовательно, файл не создан.

elomage
источник
2

Надеюсь, это поможет.

sudo nano /etc/crontab -e

В файле добавьте строку

0 0 * * * root reboot

Не пробовал, но надеюсь, что это поможет.

Стив Ирвин
источник
Спасибо за ваш ответ. Будет ли это перезагрузить систему в полночь? Как я установлю это в другой раз? Так как, он перезагружается в полночь, а затем снова в 8 утра? Благодарность :)!
Форс
2
Не редактируйте / etc / crontab напрямую; используйте команды crontab. Это безопаснее.
scruss
sudo crontab -e
Джон Ла Рой
sudo nano /etc/crontab -eЭто -eне имеет смысла, согласно manpage nano «Игнорируется, для совместимости с Pico».
macrojames
да, спасибо за разъяснение. Я только начал с Linux и все еще в фазе изучения. Также из других постов, которые я видел здесь, похоже, что это плохая идея редактировать crontab напрямую.
SteveIrwin