Планирование перезагрузки на удаленном сервере Ubuntu

Я работаю на сервере ubuntu, расположенном в том месте, где обычно не ходят. Я использую ssh поверх openvpn для доступа к нему. Аппарат имеет несколько проводных интерфейсов, множество статических маршрутов и несколько шлюзов по умолчанию для WAN. Я часто меняю интерфейсные адреса и маршруты. В большинстве случаев изменения, которые я выполняю, временно - перезагрузка перезагружает сделанные мной эксперименты. В некоторых случаях некоторые из этих изменений пошли не так, и машина отключилась. В таких случаях мне приходилось вызывать кого-то в том месте, где расположен сервер, чтобы отправить машину на перезагрузку.

Теперь я хотел бы запланировать перезагрузку - скажем, через 2 часа машина должна перейдите в цикл перезагрузки. И за эти два часа я могу делать все временные эксперименты, которые я хочу. Если все временные изменения будут успешными, я смогу предотвратить перезагрузку «afer 2 hour». Итак, я хочу:

  1. Как сообщить серверу перезагрузиться после сертичного времени?
  2. Если я решаю, что машина не должна перезагружаться, я должен быть в состоянии отменить его.
12
задан 6 October 2011 в 16:49

2 ответа

В терминальном типе shutdown -r 10 Waiting 10 minutes before the restart&, который заставит сервер перезагружаться через 10 минут, передайте сообщение, объясняющее это, и нажав кнопку управления + c прервите запрос на перезагрузку.

В терминальном типе shutdown -r 18:00 Rebooting at 18:00 hours& который перезагрузит сервер в 18:00, будет транслировать сообщение, объясняющее это и может быть прервано с помощью управления + c.

Вы также можете прервать любой запрос на завершение / перезагрузку на вашем «рабочем» терминале с помощью shutdown -a.

10
ответ дан 25 May 2018 в 18:26
  • 1
    Это немного проблематично, поскольку он является интерактивным и блокирует используемую оболочку. Я не уверен, будет ли это работать над SSH, если сессия упадет. – Alain O'Dea 3 December 2012 в 05:30
  • 2
    Я не мог найти комбинацию из nohup и sudo, которые заставили бы эту работу работать от обычного сеанса ssh в качестве обычного пользователя группы администрирования. – HDave 1 April 2013 в 23:03
  • 3
    Может ли это быть запущено в сочетании с экраном, чтобы команда могла применяться, а сеанс ssh был сброшен? – Andy Davies 29 January 2015 в 13:05

Вы также можете использовать at для планирования перезагрузки. Например, sudo at 22:00 для запуска команды в 22:00 с правами root. Затем введите команду, которую вы хотите запустить: /sbin/shutdown -r now и закончите с ctrl-d. Если вы решите не запускать эту команду, запустите sudo atrm 1, чтобы удалить первую в очереди at. С sudo atq вы можете увидеть очередь.

25
ответ дан 25 May 2018 в 18:26
  • 1
    Это идеальное решение! – Sukima 8 January 2013 в 21:08
  • 2
    Это должно быть отмечено как правильный ответ! Семейство команд at - это то, что должен знать каждый администратор сервера. – HDave 1 April 2013 в 23:41
  • 3
    в случае, если вы новичок в at, сначала выполните sudo at 22:00. Это превращает вас в нечто вроде оболочки. Затем вы вводите команду, а ctrl-d - для выхода. См. Также mixeduperic.com/ubuntu/… – Tim Richardson 22 August 2016 в 07:29

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

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