locked
Проверить, что сервер перезагрузился и необходимые службы запустились RRS feed

  • Вопрос

  • Добрый день.

    Есть простейший скрипт, который устанавливает обновления и затем перезапускает сервер. 

    На данный момент данный скрипт запускается через 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