启动服务前检查服务器



我需要编辑一个脚本。在两台Windows Server 2008 R2上有一个服务。它们是负载均衡的。我需要它,所以当我运行在主服务器和辅助服务器上启动服务的脚本时,所以在它启动两个服务器上的服务之前,它会出去检查以确保主服务器已启动并运行,然后像正常一样继续启动两个服务器上的服务。

# Start Appian
function StartAppian {
  $APNSVC = Get-Service -Name $AppianService
  if (!$APNSVC) {
    Write-Host "Appian Service does not exist"
    return
  }
  # Check to see if Appian's service is already started
  if ($APNSVC.Status -eq "Running") {
    if ($LB) {
      if ($MULEAPNSVC.Status -eq "Running") {
        Write-Host "Appian Service on the Load Balanced Server already is started!" -ForegroundColor Yellow
        return
      }
    }
    Write-Host "Appian Service already is started!" -ForegroundColor Yellow
    Read-Host "Press any key to return"
    return
  }
  # Check if DEV's Process Design has a writing_*.kdb file and delete it
  if ($Server -eq "DEV") {
    #gw1
    if (Test-Path $APPIAN_HOMEserverprocessdesigngw1writing_*.kdb) {
      Write-Host "Removing writing_*.kdb from GW1" -ForegroundColor Yellow
      Remove-Item $APPIAN_HOMEserverprocessdesigngw1writing_*.kdb
    }
    #gw2
    if (Test-Path $APPIAN_HOMEserverprocessdesigngw2writing_*.kdb) {
      Write-Host "Removing writing_*.kdb from GW2" -ForegroundColor Yellow
      Remove-Item $APPIAN_HOMEserverprocessdesigngw2writing_*.kdb
    }
  }
  Write-Host "Starting Appian"
  # Place the name of the service here to start for Appian
  Start-Service $AppianService
  Notify("StartAppian")
  if ($LB) {
    (Get-Service $MULEAPNSVC.Name -ComputerName $MULE).Start()
    Write-Host "Starting Mule's Appian" -ForegroundColor Magenta
  }
  cmd.exe "/C $APPIAN_HOMEserver_scriptsdiagnosticcheckengine.bat -s >    $logdirStartup.log"
  # These lines check the Startup log for fatals and errors at the beginning
  $fatals = Select-String FATAL $logdirStartup.log
  $errs = Select-String ERROR $logdirStartup.log
  # Check for errors and fatals again
  $fatals = Select-String FATAL $logdirStartup.log
  $errs = Select-String ERROR $logdirStartup.log
  Write-Host "Still warnings or Errors in CE" -ForegroundColor Yellow
  # Increment times
  $times = $times + 1
  # If times > threshold, email out error message
  if ($times -gt $threshold) {
    SendAlert("There is a problem with Appian - It won't start")
    Write-Host "There was a problem with Appian..it took too long to start -  emailing alert" -ForegroundColor Red
    Read-Host "Press any key to exit"
  }
}
Write-Host "Appian Started" -ForegroundColor Green
Read-Host "Press any key to return"
}

您可以在脚本开始处使用一个简单的Test-Connection来完成。

if ($ping = Test-Connection -ComputerName PrimaryServerName -Quiet) {
Write-Host "Host avalible"
}
else {
Write-Host "Host unavalible"
Exit
}

还有其他建议吗?

if (Test-Connection ServerName -Count 1 -Quiet) {
Write-Host "Host avalible"
}
else {
Write-Host "Host unavalible"
Exit
}

这不起作用。我想让它测试服务器是否启动,如果不是,退出脚本,如果是,继续使用脚本。在ISE上测试时,它可以工作,但是当我启动脚本时,它不能

相关内容

  • 没有找到相关文章

最新更新