Как настроить Ubuntu для перезагрузки каждый день в указанное время?

Используя терминал или файл bash, как я могу настроить Ubuntu на перезагрузку каждый день в (скажем, например) 3 часа ночи?

Другими словами, я хочу запланировать автоматическую перезагрузку через терминал.

Я не смог найти что-либо связанное с этим в Google или AskUbuntu, и я довольно новичок в Ubuntu в целом (только что получил мой новый Raspberry Pi).

10
задан 31 July 2013 в 18:51

3 ответа

Отредактируйте записи в crontab с помощью команды crontab -e (по умолчанию это отредактирует текущий зарегистрированный пользователь crontab) и добавьте следующую строку:

0 3 * * * echo $PASSWD | sudo -S reboot
#change $PASSWD with your password

Сохраните файл и проверьте новую запись в crontab с помощью crontab -l .

Если вы хотите использовать только:

0 3 * * * sudo reboot

в качестве crontab, это не работает нормально, и вы должны проверить этот пост , чтобы увидеть, как вы можете заставить его работать.

Или просто добавьте crontab в файл crontab пользователя root, предлагающий полный путь для команды reboot, используя sudo crontab -e :

0 3 * * * /sbin/reboot
0
ответ дан 31 July 2013 в 18:51

Обратите внимание, что помещение Вашего пароля в виде открытого текста в текстовом файле не является хорошей идеей, поэтому лучше иметь этот прогон задания как корень с самого начала. Обычно, вместо того, чтобы редактировать crontab корня через crontab команда, которая оставляет записи внутри /var/spool/cron/crontabs, несколько загадочное местоположение, я предпочитаю вводить их явно в /etc/cron.d. Записи в cron.d выполняются как система crontab записи, рассматриваются как файлы конфигурации, таким образом, они должны пережить системные перезагрузки, обновления и обновления, и можно явно указать рабочего пользователя:

echo "0 3 * * * root /sbin/shutdown -h 5 'System will reboot in 5 minutes'" | sudo tee /etc/cron.d/reboot-at-3-am

Если Вы не требуетесь определенное время, а скорее, просто хотите систему к перезагрузке один раз в день, включите исполняемый файл или сценарий /etc/cron.daily и это будет автоматически выполнено в предопределенное время (6:25 системного времени по умолчанию):

echo "/sbin/shutdown -h 5 'System will reboot in 5 minutes'" | sudo tee /etc/cron.daily/reboot-me

Заметьте, что вместо того, чтобы просто перезагрузить систему без предупреждения, я устанавливаю 5-минутное предупреждение, поэтому если кто-либо зарегистрирован, у них есть шанс сохранить их работу или даже прервать завершение работы sudo shutdown -c, вместо того, чтобы осуществлять систему из-под них. Можно скорректировать их соответственно, если Вы хотите дать более вполне достаточное предупреждение (например, использовать shutdown -h 60 и выполненный команда в 2:00 и Вы дадите пользователям щедрый 1 час, предупреждающий).

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

1
ответ дан 31 July 2013 в 18:51

Почему вы хотите - или нужно для этого? Хотя сделать это довольно просто, почти наверняка есть лучшее решение для Linux, которое не требует перезагрузки. В отличие от Windows, ОС на базе Linux не требуют перезагрузок практически для всего, кроме обновления ядра.

Если вы объясните, чего вы пытаетесь достичь, мы, вероятно, поможем вам лучше.

0
ответ дан 31 July 2013 в 18:51

Другие вопросы по тегам:

Похожие вопросы: