Лучший отвечающий
Проверить, что сервер перезагрузился и необходимые службы запустились

Вопрос
-
Добрый день.
Есть простейший скрипт, который устанавливает обновления и затем перезапускает сервер.
На данный момент данный скрипт запускается через task в определенное время.
Хотелось бы доработать данный скрипт, чтобы он дожидался перезагрузки сервера, проверял, что сервер поднялся и переходил к перезагрузке следующего сервера.
Подскажите, пожалуйста, как можно организовать данную проверку?
21 августа 2017 г. 19:28
Ответы
-
что значит "необходимые службы запустились"?
вы какието конкретные сервисы проверять будете?
if ((get-service -Name W32Time -ComputerName "localhost").status -eq "Running") {echo "ok"}
или хотите пробежаться по всем сервисам допустим у которых запуск в автоматике и посмотреть что они запустились? (тут проблема что некоторые сервисы стартуют и могут стопнуться по ненадобности)
PS C:\> (get-service | where {$_.status -eq 'running' -and $_.starttype -ne 'Automatic' }).count
21
или же просто надо промониторить ошибки по запуску сервисов?- Предложено в качестве ответа Alexander RusinovModerator 22 августа 2017 г. 10:15
- Помечено в качестве ответа KazunEditor 25 августа 2017 г. 6:00
22 августа 2017 г. 9:39 -
ну и проверка на пердмет включения(пинги пошли)
#время на перезагрузку #start-sleep 60 $timeout=30 $continue = $true $trycounts=0 $connectstat=$false $comp="localhost" while($continue) { if ((test-connection -ComputerName $comp -count 1).statuscode -eq 0) { $continue=$false $connectstat=$true } else { $trycounts=$trycounts+1 if ($trycounts -gt $timeout) {$continue = $false} } } if ($connectstat) {echo "все пучком"}else{echo "нету больше котика"} #время на запуск всех сервисов #start-sleep 60
- Предложено в качестве ответа Alexander RusinovModerator 22 августа 2017 г. 10:16
- Помечено в качестве ответа KazunEditor 25 августа 2017 г. 6:00
22 августа 2017 г. 10:13
Все ответы
-
что значит "необходимые службы запустились"?
вы какието конкретные сервисы проверять будете?
if ((get-service -Name W32Time -ComputerName "localhost").status -eq "Running") {echo "ok"}
или хотите пробежаться по всем сервисам допустим у которых запуск в автоматике и посмотреть что они запустились? (тут проблема что некоторые сервисы стартуют и могут стопнуться по ненадобности)
PS C:\> (get-service | where {$_.status -eq 'running' -and $_.starttype -ne 'Automatic' }).count
21
или же просто надо промониторить ошибки по запуску сервисов?- Предложено в качестве ответа Alexander RusinovModerator 22 августа 2017 г. 10:15
- Помечено в качестве ответа KazunEditor 25 августа 2017 г. 6:00
22 августа 2017 г. 9:39 -
ну и проверка на пердмет включения(пинги пошли)
#время на перезагрузку #start-sleep 60 $timeout=30 $continue = $true $trycounts=0 $connectstat=$false $comp="localhost" while($continue) { if ((test-connection -ComputerName $comp -count 1).statuscode -eq 0) { $continue=$false $connectstat=$true } else { $trycounts=$trycounts+1 if ($trycounts -gt $timeout) {$continue = $false} } } if ($connectstat) {echo "все пучком"}else{echo "нету больше котика"} #время на запуск всех сервисов #start-sleep 60
- Предложено в качестве ответа Alexander RusinovModerator 22 августа 2017 г. 10:16
- Помечено в качестве ответа KazunEditor 25 августа 2017 г. 6:00
22 августа 2017 г. 10:13 -
Большое спасибо! :)27 августа 2017 г. 17:09