Как перезагрузить сервер и ЗАПУСТИТЬ потом весь софт. Как перезагрузить сервер 2018
Как перезагрузить сервер? / Хабр
Как перезагрузить сервер? — Это вопрос, который обычно задают ну очень начинающим пользователям, которые путаются между halt, shutdown -r, reboot, init 6 и т.д.
Опытный администратор уточнит вопрос: «а что с сервером не так?» Разные виды отказов серверов требуют разных видов ребута — и неверно выбранный вариант приведёт к тяжелейшим последствиям, из которых визит в веб-морду IPMI/DRAC/iLO с целью «доперезагрузить» будет самым лёгким. Самым тяжёлым в моей личной практике была командировка эникейщика в соседний город. С целью «нажать ребут» на одиноко стоящем сервере.
В этой статье: что мешает серверу перезагрузиться и как ему помочь.
Начнём с теории ребута.
При выключении или перезагрузке сервера менеджер инициализации (в большинстве современных дистрибутивов — systemd, в эксцентричной Ubuntu 14.04 до сих пор upstart, в архаичном хламе — sysv-init) в определённом порядке посылает всем демонам команду «выключись». И большинство демонов (например, СУБД, вроде mysql) знают, как выключаться правильно. Например, закончить все транзакции, сохранить все несохранённые данные на диск и т.д. Для in-memory СУБД, наподобие redis, это и вовсе может быть критичным: не сохранил — потерял.
Старые системы иницализации ждали неограниченно долго каждый из инит-скриптов. Например, если «шутник» добавил вам в «stop» веточку «sleep 3600», то ваш сервер будет перезагружаться час с хвостиком. А если там цифра поболе, или просто программа, которая не хочет завершаться, то и ребут никогда не закончится. Новые системы инициализации (собственно, не стесняемся — остался только systemd) дают некий таймаут (обычно 120 или 180 секунд) на сохранение данных, после чего завершают процесс силком. Помимо остановки демонов, отмонтируются файловые системы (то есть скидываются все блочные кеши), останавливаются iscsi target'ы (тоже с скидыванием кеша), и т.д. и т.п. При том, что время шатдауна получается неопределённо долгим, оно всё таки конечно. Плюс, есть хоть какая-то надежда на правильное завершение всех демонов, скидывание файловых кешей и т. д.
Таким образом, на здоровой системе правильный ответ на вопрос «как перезагрузиться» — выполнить команду reboot. В ряде случаев — даже единственный правильный (поправка: если в графическом интерфейсе сделать «reboot», то desktop environment будет думать, что это ребут аварийный — для перезагрузки из графического режима надо использовать «reboot» в интерфейсе DE).
Что может пойти не так при «обычном ребуте»? Ну, во-первых, какой-то из процессов-демонов может начать «тупить» — см выше.
Во-вторых, может возникнуть проблема с отмонтированием файловых систем. Считается, что достаточно «убить» все процессы, и отмонтировать диск будет легко — его же никто не использует. Но, это, мягко говоря, не так. Вот потенциальные методы «прибить fs гвоздями так, чтобы не отмонтировалось:
- fallocate /fs/swap -l 1G;mkswap /fs/swap; swapon /fs/swap
- dd if=/dev/sda of=/fs/image; kpartx /fs/image
- losetup --find --show /fs/image
А бывает так, что umount не может завершить операцию из-за того, что что-то не доступно. Например, файл на nfs-сервере. Если какой-то процесс обратится к такому файлу, то его завершить нельзя (даже с помощью kill -9). И в этой ситуации 'reboot' просто завесит сервер. Опять же, наиболее типовые места у systemd „прикрыты“, но вероятность наткнуться на TASK_UNINTERRUPTIBLE ('D' в ps aux) всё равно можно. Что делать? Можно перезагрузиться без синхронизации файловых систем и завершения чего-либо reboot -f. Но он тоже может повиснуть. Про причины ниже, а пока про последствия: все процессы не остановлены и умирают мгновенно, tcp сессии не закрыты, дисковые кеши не сброшены. Однако, ядро всё-таки выполняет какие-то движения в районе ребута (и, возможно, часть кешей будет сброшена). Главное же — в процессе ребута будет задействована большая часть ядра. И это означает, что если ядру поплохело, то мы можем и не вернуться обратно.
Вторая, крайне неприятная ситуация: проблемы с файловой системой на / (в корне). Любая попытка сделать ls, grep, и даже 'reboot' вызывает либо зависание консоли, либо ошибку. По той же категории проходят проблемы с libc (включая её удаление), когда на попытку 'reboot' говорят о проблеме линковки и отказываются что-то делать. Или, мы достигли лимита на число pid'ов и все они в 'D' стейт. или ещё какая-то гадость того же калибра, идущая по категории „серверу плохо“.
Бывает так, что на сервер осталась открыта только одна консоль (а вторая уже не открывается). Почему? Потому что кто-то что-то подхимичил с драйвером дисков. Или рейд-контроллером. Или ещё чем-то, после чего от '/' остаются только воспоминания в дисковом кеше. Это означает, что у нас есть только команды bash'а (встроенные), которые выполняются без запуска новых процессов.
Существует метод перезагрузки, который не требует выполнения каких-либо исполняемых файлов (т.е. чтения с отсутствующего диска). Это (от рута): echo b >/proc/sysrq-trigger. Файл sysrq-trigger позволяет „нажать“ любую кнопку из SysRq комбинаций (аварийные кнопки ядра). В том числе и SysRq-b, то есть аварийный „reboot“. Часто бывает так, что после нажатия enter даже не успевает появиться перевод строки — сервер уже в ребуте до того, как syscall вернулся. Это самое сильное из софтового, что есть для ребута.Замечание: кажующееся правильным в этой ситуации „sync, reboot“, т.е. SysRq-s, SysRq-B это ошибка, т.к. после SysRq-S, ядро может попытаться начать общаться с пустым множеством, и, потенциально, упасть в панику или отломать вам последнюю из доступных консолей. Если делается аварийный ребут — он должен быть аварийным
Можно было бы подумать, что на этом „всё“, но бывают ещё более неприятные зависания. Например, зависла сетевая карта. И обычный reboot (в т.ч. через sysrq) не помогает. Вторым примером таких плохой ситуации бывает зависание enclosure, которая залипла на плохом диске и игнорирует все bus reset. Перезагрузка вроде бы всё сбрасывает, а диски недоступны.
Интресующая нас команда: ipmitool chassis power cycle. Она более требовательна к работоспособности системы (должны быть загружены модули ядра, сам ipmitool должен успешно запуститься, ipmi должен быть рабочим и т.д.). Но зато она позволяет передёрнуть по питанию всех. Точнее, почти всех — если у сервера есть jbod'ы, то до них эта команда не доходит. Но, всё-таки, это очень добротный и хороший ребут.
Если ядру совсем поплохело, то команду можно выполнить и удалённо (ipmitool -H ipmi.server.local chassis power cycle)
Ещё одна сложная ситуация — когда завис ipmi. Если система при этом более-менее жива, то можно „перезагрузить ipmi“: ipmitool mc reboot hard. После этого можно будет сделать power cycle для шасси. Звучит странно, но я несколько раз в жизни „вытаскивал“ сервер в нормальный ребут именно такой последовательностью. (После mc reboot hard надо дать пару минут на загрузку BMC).
Следующая точка „боли“ — это зависающие блоки питания. Да, такое бывает. Баги в прошивке блоков питания исправляют, их нужно прошивать. Разумеется, любые мягкие ребуты (такие как ipmi power cycle) в этой ситуации не работают. Нужно либо физически тыкать кабель, либо передёргивать питание удалённо. В этой ситуации помогает IP-розетка.
Выглядит это примерно так (фрагмент панели управления для servers.com/servers.ru): Очевидно, в этих условиях ребут пройдёт по очёнь жёсткому сценарию, но точно пройдёт.
Краткая выжимкаНормальная работа | reboot |
проблемы с софтом | reboot -f |
проблемы с ядром/маунтами/libc | echo b>/proc/sysrq-trigger |
проблемы с ядром/маунтами/libc и нет открытой консоли | ipt_SYSRQ (надо подготовить заранее) |
проблемы с ядром/железом | ipmitool chassis power cycle |
проблемы с ядром/железом без открытой консоли | ipmitool -H ipmi.server.local chassis power cycle |
проблемы с автономной периферией/БП/ipmi | ребут через IP-розетку |
habr.com
Как перезагрузить сервер Windows через командную строку
Всем привет мне уже несколько раз писали такой вопрос, как перезагрузить сервер Windows через командную строку. Сегодня я на него отвечу, рассказав о нескольких способах это сделать. Для чего это может быть использовано ну например для написания скрипта, который в нужное время перезагрузит сервер, либо для саморазвития, мотивы могут быть разными, давайте смотреть как это сделать.
Перезагрузить через командную строку
Перезагружать через командную строку мы будем Windows Server 2008 R2, но данная инструкция подойдет как и для 2012 R2 так и для любой клиентской ОС хоть от Windows 7 до Windows 10. В начале мы рассмотрим классическую cmd, открываем ее (Как открыть командную строку читайте тут). Для перезагрузки используется вот такая команда.
-r - означает перезагрузка
-t - время равное 0
У вас начнется моментально перезагрузка Windows.
Синтаксис утилиты shutdown
Ниже представлена подробная справка по всем возможным параметрам данной утилиты, думаю вы сможете найти бного полезного для различных задач.
Z:\>shutdownИспользование: shutdown [/i | /l | /s | /r | /g | /a | /p | /h | /e] [/f][/m \\компьютер][/t xxx][/d [p|u]xx:yy [/c "комментарий"]]
/i Отображение графического интерфейса пользователя. Этот параметр должен быть первым./l Завершение сеанса. Этот параметр нельзя использовать с параметрами /m или /d./s Завершение работы компьютера./r Завершение работы и перезагрузка компьютера./g Завершение работы и перезагрузка компьютера. После перезапуска системы, запуск всех зарегистрированных приложений./a Отмена завершения работы системы. Этот параметр можно использовать только в период ожидания./p Немедленное отключение локального компьютера без предупреждения. Можно использовать с параметрами /d и /f./h Переключение локального компьютера в режим гибернации.
Для удобства можно создать ярлык в котором можно вставить данную команду, или же создать cmd или bat файл для удобства. Так же я данную возможность использовал в mmc консоли. Помимо того что можно перезагрузить через командную строку, есть возможность сделать тоже самое и через PowerShell.
Как перезагрузить сервер через PowerShell
Microsoft уже давно несет свой сильный язык в массы, и надо вам сказать он очень функционален, но об этом позже. PowerShell, так же имеет возможность перезагрузить ваш сервер или компьютер через свою командную строку, делается это очень просто. Открываем оболочку PowerShell и вводим вот такой командлет
Restart-Computer имя компьютера
Или для нескольких
Restart-Computer "имя компьютера1", "имя компьютера2"
Довольно таки просто, есть возможно перезагружать список серверов. Уверен теперь у вас не будет проблем перезагрузить компьютер через командную строку. Существует конечно большое множество подобного рода утилит, но их нужно доставлять. Описанные два средства уже являются компонентами Windows и не требуют установки, что подразумевает моментальное их использование, да и чем меньше на сервере установлено тем лучше, более безопасно, так как любое стороннее по нужно обновлять и следить за этим.
Материал сайта pyatilistnik.org
Как перезагрузить сервер и ЗАПУСТИТЬ потом весь софт. | ZennoLab
Добрый день господа. Есть задача регулярно перезагружать сервер, но многий софт не запускается сразу на "Сбор базы", или "начать" кнопки не нажмутся без моего участия.Как-то через зенно можно сделать, чтобы по этим кнопкам зеннопостер сам нажимал в приложениях?
Click to expand...
Да собственно скорее всего никак, либо с очень большим количеством костылей, вроде одного большого костыля. Ведь ZP надстройка наб браузером. А клики по сторонним приложением, это немного другая история, но так как зенно у вас на ПК, а действия на сервере то можно что то придумать.Целесообразно ли использовать зенно в данном случае - вопрос.Нужно разбирать способ взаимодействия именно с сервером, и прикручивать его к зенно.
Теоретически можно прописать запуск VNC/RDP в браузере зенно, печать логина\пароля на клавиатуре, энтер, потом клики по координатам на нужных приложениях, с таймингами, отточить это все. Почему нет. Можно. С проверками разве что будут проблемы.В общем загрузить вход на сервер и войти в него, а делее зенно-автокликером по координатам покликать, конечно с таймингами да с запасом.
----Почему просто оне хотите к примеру сделать bat файл который будет загружать нужные программы, сразу после запуска сервера?Конечно далеко не все программы будут загружаться в нужном виде, то есть все можно будет загрузить ключ старта проекта с функцией "сбор базы" и тп. Но для части возможно и подойдет.
Можно использовать "извращенский" метод, вроде держать на сервере некий автокликер, написать на нем скрипт, и поместить в автозагрузку, загрузился сервер, кликер включился, покликал на сборах баз и тп, по нужному алгоритму, и выгрузился из памяти.
В общем как вы поняли, задачей такой не занимался. Так что могу посоветовать лишь такое. Как мне кажется возможно есть и иные решения для таких задач.
zennolab.com
Как перезагрузить сервер - Мир компьютерных инноваций
Могу ли я перезагрузить сервер / VPS самостоятельно?
Да, вы можете перезагрузить ваш сервер либо VPS самостоятельно. Если ваш сервер имеет IPMI, то можете сразу перейти к чтению данной статьи .
Если это Linux сервер (либо VPS) и у вас есть подключение по SSH, подключитесь с помощью вашего любимого SSH клиента (например Putty) и выполните команду:
reboot либо shutdown -r now
О том, что такое Putty и SSH вы можете прочитать в данной статье: Linux: Что такое SSH и Putty?
Если это Windows сервер (либо VPS) и у вас есть подключение по RDP, подключитесь к серверу, нажмите Start --> Run --> введите команду shutdown /r и нажмите Enter.
Через 30 секунд сервер перезагрузится.
Чаще всего перезагрузка требуется, если сервер ни по SSH ни по RDP недоступен. Но это не беда. Теперь вы можете самостоятельно перезагрузить сервер удаленно, либо инициировать запрос на перезагрузку напрямую нашим техникам в Датацентр, если удаленная перезагрузка не помогла (иногда такое случается). На данный момент удаленная перезагрузка доступна только клиентам на нашей основной площадке в Германии. Для того, чтобы осуществить удаленную перезагрузку сервера выполните следующие действия:
0) Убедитесь, что вы не получали от нас жалоб на ваш сервер. Не забывайте искать также в папке СПАМ наши письма, так как жалобы часто могут попадать и туда.
cp.inferno.name2) Выберите в верхнем меню пункт "Мои аккаунты" как показано на рисунке:
2) Выберите в списке серверов тот, который хотите перезагрузить нажав на иконку
в списке услуг:3) Выберите способ перезагрузки, нажав одну из кнопок, как показано на рисунке:
Примечание: нажатие на кнопку Reset инициирует автоматический удаленный ребут. Срабатывает в 99% случаев. Если вдруг не сработало, вы можете нажать Reset manual для того, чтобы отправился запрос на ручную перезагрузку в Датацентр.
ВАЖНО! Перезагружать сервер с помощью кнопки Reset можно не чаще 1 раза в 20 минут. C помощью Reset manual - не чаще 1 раза в 5 часов. Копия запроса и ответы техников Датацентра придут к нам на email, поэтому жать несколько раз эту кнопку не имеет смысла. Мы проследим, чтобы ваш сервер
заработал в кратчайшие сроки. ЗАПРЕЩЕНО ОТПРАВЛЯТЬ ЗАПРОС НА MANUAL RESET, НЕ СДЕЛАВ ОБЫЧНОГО RESET! Тем, кто будет злоупотреблять вышесказанными ограничениями, будет отключена возможность удаленной перезагрузки НАВСЕГДА и включена только за дополнительную плату!
ДляVPS перезагрузка немного отличатется. В самом низу вы сможете найти секциюVPS Management:
Тут вы можете видеть следующие кнопки:
Shutdown - завершение работы VPS. После нажатия VPS будет выключен.
Power ON - запуск VPS, если он был выключен или остановлен.
Power OFF (forced) - принудительное выключение VPS (используется, если VPS не выключился в течении 5 минут после нажатия кнопки Shutdown )
Reboot - обычная перезагрузка VPS. Срабатывате в 98% случаев.
Итак, как же стоит ПРАВИЛЬНО и корректно перезагружать VPS:
Способ №0: проверьте почту и убедитесь, что ваш VPS не заблокирован по абузе (смотрите также папку Спам) и не проводятся ли сейчас технические работы. Иначе любые попытки перезагрузить будут бессмысленны и вы просто потратите свое время. Если ничего не нашли, переходите к способу №1
Способ №1: просто нажмите кнопку Reboot. Если в течении 15 минут ВПС не начал работать, переходите к способу №2.
Способ №2: нажмите на кнопку Shutdown. подождите 5-10 минут и нажмите кнопку Power ON. Если через 5 минут VPS не работает, переходите к способу №3
Способ №3: нажмите кнопку Power OFF (forced). подождите 5 минут и нажмите кнопку Power ON. Пользуйтесь этим способом очень аккуратно, так как в некоторых случаях это может нарушить работу файловой системы. Если ВПС все еще недоступен, переходите к способу №4.
Способ №4: Создайте тикет в службе поддержки и объясните ситуацию. Укажите, что вы пытались перезагрузить VPS из панели, но у вас ничего не получилось и VPS по прежнему недоступен. Обязательно указывайте данные к VPS и если делали какие-то изменения в системе, то укажите что именно (бить вас за это никто не будет, но время и вам и нам очень сильно сэкономит)
Для клиентов, которые размещены на других площадках в ближайшее время будут введены опции для Manual reboot, т.е. для отправки запроса в Датацентр без нашего участия самостоятельно в любое время дня и ночи.
Этот ответ был полезен?
Добавить в избранное Распечатать статью
Источник: cp.inferno.name
Категория: Сервера
Похожие статьи:
Что такое Сервер?
Настройка OpenVPN сервера.
Тайные тропы в Интернете, или Что такое прокси-сервер
Как настроить и использовать прокси-сервер
Как сделать сервер lineage 2 Gracia Final
mykomputers.ru
Как перезагрузить сервер? / Хабр
Abstract: описание видов ребута, рассказ про sysrq, ipt_SYSRQ, ipmi, psu.Как перезагрузить сервер? — Это вопрос, который обычно задают ну очень начинающим пользователям, которые путаются между halt, shutdown -r, reboot, init 6 и т.д.
Опытный администратор уточнит вопрос: «а что с сервером не так?» Разные виды отказов серверов требуют разных видов ребута — и неверно выбранный вариант приведёт к тяжелейшим последствиям, из которых визит в веб-морду IPMI/DRAC/iLO с целью «доперезагрузить» будет самым лёгким. Самым тяжёлым в моей личной практике была командировка эникейщика в соседний город. С целью «нажать ребут» на одиноко стоящем сервере.
В этой статье: что мешает серверу перезагрузиться и как ему помочь.
Начнём с теории ребута.
При выключении или перезагрузке сервера менеджер инициализации (в большинстве современных дистрибутивов — systemd, в эксцентричной Ubuntu 14.04 до сих пор upstart, в архаичном хламе — sysv-init) в определённом порядке посылает всем демонам команду «выключись». И большинство демонов (например, СУБД, вроде mysql) знают, как выключаться правильно. Например, закончить все транзакции, сохранить все несохранённые данные на диск и т.д. Для in-memory СУБД, наподобие redis, это и вовсе может быть критичным: не сохранил — потерял.
Старые системы иницализации ждали неограниченно долго каждый из инит-скриптов. Например, если «шутник» добавил вам в «stop» веточку «sleep 3600», то ваш сервер будет перезагружаться час с хвостиком. А если там цифра поболе, или просто программа, которая не хочет завершаться, то и ребут никогда не закончится. Новые системы инициализации (собственно, не стесняемся — остался только systemd) дают некий таймаут (обычно 120 или 180 секунд) на сохранение данных, после чего завершают процесс силком. Помимо остановки демонов, отмонтируются файловые системы (то есть скидываются все блочные кеши), останавливаются iscsi target'ы (тоже с скидыванием кеша), и т.д. и т.п. При том, что время шатдауна получается неопределённо долгим, оно всё таки конечно. Плюс, есть хоть какая-то надежда на правильное завершение всех демонов, скидывание файловых кешей и т. д.
Таким образом, на здоровой системе правильный ответ на вопрос «как перезагрузиться» — выполнить команду reboot. В ряде случаев — даже единственный правильный (поправка: если в графическом интерфейсе сделать «reboot», то desktop environment будет думать, что это ребут аварийный — для перезагрузки из графического режима надо использовать «reboot» в интерфейсе DE).
Что может пойти не так при «обычном ребуте»? Ну, во-первых, какой-то из процессов-демонов может начать «тупить» — см выше.
Во-вторых, может возникнуть проблема с отмонтированием файловых систем. Считается, что достаточно «убить» все процессы, и отмонтировать диск будет легко — его же никто не использует. Но, это, мягко говоря, не так. Вот потенциальные методы «прибить fs гвоздями так, чтобы не отмонтировалось:
- fallocate /fs/swap -l 1G;mkswap /fs/swap; swapon /fs/swap
- dd if=/dev/sda of=/fs/image; kpartx /fs/image
- losetup --find --show /fs/image
Чем это чревато? Неотмонтированной файловой системой. Systemd в этой ситуации пытается-пытается, да и бросает (неотмонтированную файловую систему). То есть reboot в этой ситуации будет ОЧЕНЬ долгим, но всё-таки пройдёт. Но это если umount вернёт ошибку.
А бывает так, что umount не может завершить операцию из-за того, что что-то не доступно. Например, файл на nfs-сервере. Если какой-то процесс обратится к такому файлу, то его завершить нельзя (даже с помощью kill -9). И в этой ситуации 'reboot' просто завесит сервер. Опять же, наиболее типовые места у systemd „прикрыты“, но вероятность наткнуться на TASK_UNINTERRUPTIBLE ('D' в ps aux) всё равно можно. Что делать? Можно перезагрузиться без синхронизации файловых систем и завершения чего-либо reboot -f. Но он тоже может повиснуть. Про причины ниже, а пока про последствия: все процессы не остановлены и умирают мгновенно, tcp сессии не закрыты, дисковые кеши не сброшены. Однако, ядро всё-таки выполняет какие-то движения в районе ребута (и, возможно, часть кешей будет сброшена). Главное же — в процессе ребута будет задействована большая часть ядра. И это означает, что если ядру поплохело, то мы можем и не вернуться обратно.
Вторая, крайне неприятная ситуация: проблемы с файловой системой на / (в корне). Любая попытка сделать ls, grep, и даже 'reboot' вызывает либо зависание консоли, либо ошибку. По той же категории проходят проблемы с libc (включая её удаление), когда на попытку 'reboot' говорят о проблеме линковки и отказываются что-то делать. Или, мы достигли лимита на число pid'ов и все они в 'D' стейт. или ещё какая-то гадость того же калибра, идущая по категории „серверу плохо“.
Бывает так, что на сервер осталась открыта только одна консоль (а вторая уже не открывается). Почему? Потому что кто-то что-то подхимичил с драйвером дисков. Или рейд-контроллером. Или ещё чем-то, после чего от '/' остаются только воспоминания в дисковом кеше. Это означает, что у нас есть только команды bash'а (встроенные), которые выполняются без запуска новых процессов.
Существует метод перезагрузки, который не требует выполнения каких-либо исполняемых файлов (т.е. чтения с отсутствующего диска). Это (от рута): echo b >/proc/sysrq-trigger. Файл sysrq-trigger позволяет „нажать“ любую кнопку из SysRq комбинаций (аварийные кнопки ядра). В том числе и SysRq-b, то есть аварийный „reboot“. Часто бывает так, что после нажатия enter даже не успевает появиться перевод строки — сервер уже в ребуте до того, как syscall вернулся. Это самое сильное из софтового, что есть для ребута.Замечание: кажующееся правильным в этой ситуации „sync, reboot“, т.е. SysRq-s, SysRq-B это ошибка, т.к. после SysRq-S, ядро может попытаться начать общаться с пустым множеством, и, потенциально, упасть в панику или отломать вам последнюю из доступных консолей. Если делается аварийный ребут — он должен быть аварийным
Это всё работает, если у вас есть консоль на сервер. А если логин виснет и открытой консоли нет? Есть модуль ipt_SYSRQ, позволяющий выполнить sysrq запросы по получению определённого сетевого пакета (точнее, по правилу iptables). Работает целиком в ядре, т.е. от FS не зависит. К нему же прилагается команда send_sysrq.Можно было бы подумать, что на этом „всё“, но бывают ещё более неприятные зависания. Например, зависла сетевая карта. И обычный reboot (в т.ч. через sysrq) не помогает. Вторым примером таких плохой ситуации бывает зависание enclosure, которая залипла на плохом диске и игнорирует все bus reset. Перезагрузка вроде бы всё сбрасывает, а диски недоступны.
В этом случае нам нужен power cycle (включить/выключить). Физически бегать к серверу не интересно, так что можно посмотреть на возможности современных серверов: IPMI. Это встренный микрокомпьютер, позволяющий управлять „большим“ компьютером. Он обычно называется IPMI, DRAC, iLO, etc.
Интресующая нас команда: ipmitool chassis power cycle. Она более требовательна к работоспособности системы (должны быть загружены модули ядра, сам ipmitool должен успешно запуститься, ipmi должен быть рабочим и т.д.). Но зато она позволяет передёрнуть по питанию всех. Точнее, почти всех — если у сервера есть jbod'ы, то до них эта команда не доходит. Но, всё-таки, это очень добротный и хороший ребут.
Если ядру совсем поплохело, то команду можно выполнить и удалённо (ipmitool -H ipmi.server.local chassis power cycle)
Ещё одна сложная ситуация — когда завис ipmi. Если система при этом более-менее жива, то можно „перезагрузить ipmi“: ipmitool mc reboot hard. После этого можно будет сделать power cycle для шасси. Звучит странно, но я несколько раз в жизни „вытаскивал“ сервер в нормальный ребут именно такой последовательностью. (После mc reboot hard надо дать пару минут на загрузку BMC).
Следующая точка „боли“ — это зависающие блоки питания. Да, такое бывает. Баги в прошивке блоков питания исправляют, их нужно прошивать. Разумеется, любые мягкие ребуты (такие как ipmi power cycle) в этой ситуации не работают. Нужно либо физически тыкать кабель, либо передёргивать питание удалённо. В этой ситуации помогает IP-розетка.
Выглядит это примерно так (фрагмент панели управления для servers.com/servers.ru): Очевидно, в этих условиях ребут пройдёт по очёнь жёсткому сценарию, но точно пройдёт.
Краткая выжимкаНормальная работа | reboot |
проблемы с софтом | reboot -f |
проблемы с ядром/маунтами/libc | echo b>/proc/sysrq-trigger |
проблемы с ядром/маунтами/libc и нет открытой консоли | ipt_SYSRQ (надо подготовить заранее) |
проблемы с ядром/железом | ipmitool chassis power cycle |
проблемы с ядром/железом без открытой консоли | ipmitool -H ipmi.server.local chassis power cycle |
проблемы с автономной периферией/БП/ipmi | ребут через IP-розетку |
habr_com.iframe2.weship2you.com
Перезагрузка сервера через командную строку и планировщик задач |
Иногда сервера необходимо перезагружать, например, для установки обновлений. В рабочее время, зачастую, сделать это не возможно по причине того, что пользователи работают с сервером и прерывать их работу не вариант. Конечно, можно или задержаться на работе или прийти раньше для выполнения перезагрузки… Но гораздо проще и удобнее запланировать перезагрузку через диспетчер задач.
Для начала рассмотрим, как перезагрузить (или выключить) систему через командную строку. В этом нам поможет утилита shutdown.exe. Не будем рассматривать все возможные параметры использования, их можно посмотреть запустив программу из консоли с параметром /? или просто без параметра, рассмотрим набор параметров, который использую я.
shutdown.exe /r /f /t 90 /d p:2:16 /c "Перезапуск для установки обновлений"
в данном случае:
/r — перезагрузка сервера
/f — принудительное закрытие всех приложений.
/t 90 — время ожидания до начала перезагрузки 90 сек.
/d p:2:16 — указание причины перезагрузки, которая отобразиться в системном журнале. В данном случае, мы указали:p — запланированная перезагрузка, 2:16 — «Операционная система: Установка пакета обновления (Запланировано)»
/c «Перезапуск для установки обновлений» — комментарий в свободной форме длинной не более 512 символов.
Итак, после выполнения данной строки на экране появится окно с указанным нами комментарием.
Пока идет указанное нами время ожидания, есть возможность прервать запуск перезагрузки в случае необходимости выполнив shutdown.exe /a в командной строке.
После окончания времени ожидания станция будет перезагружена. При этом в системный журнал попадет запись о перезагрузке, ее причинах и нашим комментарием.
Таким образом, если за серверами следят несколько Администраторов, у них не будет вопросов почему сервер перезагружался.
Для того чтобы запланировать перезагрузку, разумно использовать планировщик задач. Не буду здесь описывать как создавать в нем задачи, отмечу только, что параметры командной строки следует вынести в соответствующую строчку, как на скриншоте
Обратите внимание, что путь я преобразовал через системную переменную:
%SYSTEMROOT%\System32\shutdown.exe
Таким образом, не важно на какой диск установлена система, программа запустится.
Созданную задачу можно устанавливать на определенные дату/время с повторением или без по вашему желанию. Система будет перезагружена в назначенное время и в системном журнале останется соответствующая запись.
Разумеется, вы можете экспортировать созданную задачу в xml-файл и использовать как шаблон при создании подобной задачи на другом сервере вашей сети.
Следует также отметить, что таким же образом можно перезагрузить (или выключить) удаленный компьютер, если использовать параметр /m \\ИМЯ_КОМПЬЮТЕРА.
Утилита Shutdown имеет и оконный интерфейс, для этого утилиту следует запустить с ключом /i
Данный диалог позволяет выполнить перезагрузку на компьютерах сети (AD) без использования командной строки.
Статьи в тему:
Shutdown (technet)Перезагрузка или завершение работы удаленного компьютера и документирование причины
subreal-team.com
Как перезапустить сервер?
Необходимость в перезагрузке сервера возникает как при его зависании, так и после некоторых видов операций по обновлению программного обеспечения. Перезагрузить удаленную машину можно как локально, так и дистанционно.
Инструкция
imguru.ru