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


11

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

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

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

Ответы:


13

Отредактируйте записи в 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

Не могли бы вы положить это в crontab root и не слишком беспокоиться оecho $PASSWD
Дан

Я этого не знал. Это ошибка cron или это нормально? Я имею в виду, если вы отредактируете crontab как root, то задание будет выполнено, только если вы вошли в систему как root? Я думаю, что это неправильно. (или должно быть).
NickTux

@ RaduRădeanu Это не правда. Root cronjobs будет работать без входа в систему как root.
OrangeTux,

@OrangeTux Вы имеете право, извините, я сказал это, потому что я тестировал без указания полного пути для rebootкоманды. В противном случае не будет работать. Смотрите мои новые правки.
Раду Рэдяну

@NikTh Я был неправ, см. Выше комментарий .
Раду Рэдяну

1

Обратите внимание, что помещать ваш текстовый пароль в текстовый файл не очень хорошая идея, поэтому лучше всего запускать это задание с правами root с самого начала. Обычно вместо того, чтобы редактировать crontab root с помощью 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 AM, и вы будете предупреждать пользователей за 1 час).

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


-1

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

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


3
Он хочет перезагрузить компьютер каждую ночь, чтобы он перезагрузился
Майкл Батлер
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.