웹 사이트를 운영하는 서버를 가지고 있는데, 어떤 이유로 든 기분이 좋을 때마다 죽은 웹 사이트가 있습니다. 왜 내가 설명 할이 솔루션이 화재를 내고 문제를 해결하지 못하는지 알 수 있을지 모르겠습니다. 그러나 지금은 괜찮습니다.Powershell에서 웹 사이트를 사용할 수 있는지 계속 확인하십시오.
그래서 웹 사이트를 사용할 수 있는지 여부를 지속적으로 확인하는 서버에서 Powershellscript를 실행하여 다시 실행할 수있는 마법을 수행합니다.
지금까지이 코드가 있습니다.
아파치를 켜고 스크립트를 실행하면 "실행 중"기능이 작동합니다. 아파치를 끄고 스크립트를 실행하면 "notrunning"기능이 작동합니다.
하지만 문제는 아파치를 시작할 때 스크립트를 실행하고 "실행 중"이 반복적으로 반복되고 아파치 (스크립트가 계속 실행 중임)를 돌려서 "notrunning"으로 이동하여 문제를 해결합니다. , 내 서비스를 다시 시작하고 사이트가 시작되면 "시작"에서 "실행"으로 이동하십시오. 하지만 "실행 중"에 붙어서 "알지 못하는"상태로 바뀌지는 않을 것입니다.
내가 어떻게 이런 일이 일어날 수 있는지 생각해보십시오.
function checkSite
{
[string] $url = 'http://websitegoeshere.com'
[net.httpWebRequest] $req = [net.webRequest]::create($url)
$req.Method = "HEAD"
[net.httpWebResponse] $res = $req.getResponse()
while ($res.StatusCode -ge "200") {running} notrunning
}
function running
{
cls;
Write-Host " -=IS-checker=-" -fore yellow
Write-Host "" -fore green
Write-Host "----------------------" -fore green
Write-Host " Access to web = OK " -fore green
Write-Host "----------------------" -fore green
sleep 60
}
function notrunning
{
cls;
Write-Host "-=IS-checker=-" -fore yellow
Write-Host "" -fore red
Write-Host "-------------------------" -fore red
Write-Host " Site down - Site Down " -fore red
Write-Host "-------------------------" -fore red
sleep 2
$process = "process-name-goes-here"
Write-Host "Stopping process" $process -fore red
Stop-Process -processname $process
sleep 5
$service = "service-name-goes-here"
Write-Host "Killing service" $service -fore red
Stop-Service $service -Force
sleep 5
Write-Host "Starting service" $service -fore green
Start-Service $service
sleep 5
$LogTime = Get-Date -Format "yyyy-MM-dd hh-mm-ss"
$LogFile = 'C:\PSLog\'+"LOG_"+$LogTime+".log"
$LogTime+" Stopped "+$process+", Stopped "+$service+", Started "+$service | Out-File $LogFile
Write-Host "Logfile written to"$LogFile -fore green
sleep 5
checkSite
}
checkSite
(나는 내 companys sake에 대한 실제 프로세스 및 서비스 이름을 꺼내 스크립트를 편집)
당신이 얻을 수있는 도구가 있습니다 (일부는 무료/오픈 소스이고, [others] (http://www.paessler.com/network_monitoring/website_monitoring)는 업그레이드해야 할 수도있는 유료 버전입니다). 당신을위한 웹 사이트는 경보를 발령하거나 응답하지 않을 때 다른 행동을 취합니다. 왜 바퀴를 재발견합니까? – alroc
방금 PowerShell을 배우기 시작했고 뭔가 유용한 것을 만드는 것이 재미있을 거라고 생각했습니다. – Frigol33t
규칙 # 1 : 순전히 교육용 훈련이 아닌 한 누군가가 이미 작성한 (또는 비용을 지불하지 않고 제공하는) 것을 만들지 마십시오. 그들은 아마 더 잘했을 것입니다. 그것은 비즈니스 상황에서 중요해질 수 있습니다. – alroc