Я работаю на сервере Ubuntu, расположенном в месте, куда я обычно не хожу. Я использую SSH через OpenVPN для доступа к нему. Машина имеет несколько проводных интерфейсов, множество статических маршрутов и несколько шлюзов по умолчанию для WAN. Я часто меняю адреса интерфейсов и маршруты. В большинстве случаев я делаю изменения временно - перезагрузка сбрасывает эксперименты, которые я провел. В некоторых случаях некоторые из этих модификаций работали неправильно, и машина отключалась. В таких случаях мне приходилось вызывать кого-то в том месте, где расположен сервер, чтобы отправить машину в перезагрузку.
Теперь я хотел бы запланировать перезагрузку - скажем, через 2 часа машина должна войти в цикл перезагрузки. И в эти два часа я могу проводить любые временные эксперименты, какие захочу. Если все временные изменения пройдут успешно, я смогу предотвратить перезагрузку через два часа. Итак, что я хочу:
На терминале типа shutdown -r 10 Waiting 10 minutes before the restart&
, который выполнит перезагрузку сервера через 10 минут, передайте сообщение, поясняющее, что нажатие клавиш управления + c прервет запрос на перезагрузку.
На терминале типа shutdown -r 18:00 Rebooting at 18:00 hours&
, который выполнит перезагрузку сервера в 18:00, будет транслироваться сообщение, объясняющее это и может быть прервано с помощью control + c.
Вы также можете прервать любой запрос на выключение / перезагрузку на «работающем» терминале с помощью shutdown -a
.
Вы также можете использовать at
для планирования перезагрузок. Например, sudo at 22:00
для запуска команды в 22:00 от имени пользователя root. Затем введите команду, которую вы хотите запустить: /sbin/shutdown -r now
и завершите с помощью ctrl-d
. Если вы решили не запускать эту команду, запустите sudo atrm 1
, чтобы удалить первую из очереди at
. С помощью sudo atq
вы можете увидеть очередь.