В настоящее время я пытаюсь создать сценарий, который позволяет мне проверять несколько веб-адресов, чтобы увидеть, находятся ли они в сети и активны. В моей компании есть несколько серверов с различными активными средами (производство, подготовка, разработка и т. д.). Мне нужен скрипт, который может проверять 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