В момента се опитвам да създам скрипт, който ми позволява да проверявам множество уеб URL адреси, за да видя дали са онлайн и активни. Моята компания има множество сървъри с различни активни среди (Производство, Постановка, Разработка и т.н.) Имам нужда от скрипт, който може да проверява URL адресите на всички среди и да ми казва дали са онлайн или не всяка сутрин, за да мога да изпреварвам играта при справяне с неработещи сървъри или уебсайтове.
Проблемът ми обаче е, че не мога да базирам логиката стриктно на HTTP код, за да считам сайта онлайн или не, някои от нашите уебсайтове може да са онлайн от гледна точка на HTTP, но имат компоненти или уеб части на сайта, които не работят и показват грешка съобщение на страницата.
Имам проблеми с измислянето на скрипт, който може не само да проверява HTTP статуса, но и да сканира страницата и да анализира всички съобщения за грешка и след това да пише на хост въз основа на двете части на логиката, независимо дали сайтът е „Онлайн“ или не "Надолу"
Ето какво имам досега, ще забележите, че не включва нищо относно анализ на ключови думи, тъй като не знам как да го внедря...
#Lower Environments Checklist Automated Script
Write-Host Report generated at (Get-date)
write-host("Lower Environments Status Check");
$msg = ""
$array = get-content C:\LowerEnvChecklist\appurls.txt
$log = "C:\LowerEnvChecklist\lowerenvironmentslog.txt"
write-host("Checking appurls.txt...One moment please.");
("`n--------------------------------------------------------------------------- ") | out-file $log -Append
Get-Date | Out-File $log -Append
("`n***Checking Links***") | out-file $log -Append
("`n") | out-file $log -Append
for ($i=0; $i -lt $array.length; $i++) {
$HTTP_Status = -1
$HTTP_Request = [System.Net.WebRequest]::Create($array[$i])
$HTTP_Request.Timeout =60000
$HTTP_Response = $HTTP_Request.GetResponse()
$HTTP_Status = [int]$HTTP_Response.StatusCode
If ($HTTP_Status -eq 200) {
$msg = $array[$i] + " is ONLINE!"
}
Else {
$msg = $array[$i] + " may be DOWN, please check!"
}
$HTTP_Response.Close()
$msg | Out-File $log -Append -width 120
write-host $msg
}
("`n") | out-file $log -Append
("`n***Lower Environments Checklist Completed***") | out-file $log -Append
write-host("Lower Environments Checklist Completed");
appurls.txt съдържа само вътрешните URL адреси, които трябва да бъдат проверени за информация.
Всяка помощ ще бъде много ценена! Благодаря.
for ($i=0; $i -lt $array.length; $i++) { $HTTP_Status = -1 $HTTP_Request = [System.Net.WebRequest]::Create($array[$i]) $HTTP_Request.Timeout =60000 $HTTP_Response = $HTTP_Request.GetResponse() $HTTP_Status = [int]$HTTP_Response.StatusCode If ($HTTP_Status -eq 200) { switch -wildcard ($HTTP_Response.content) { "*An error has occurred* *oops* *JBoss* *401*
- person KyloRen   schedule 24.12.2015