radioactivetoy
@radioactivetoy

Как сделать опроса веб адресса в скрипте?

Здравствуйте, потребовалось мне сделать скрипт для проверки работы программы/службы и ее перезапуска.
Оговорюсь что в PS новичок, но погуглив по разным примерам написал то что требуется, и в целом оно работает.
Опустив излишний контекст, проблема в том, что мне нужно проверять доступность веб интерфейса программы, реализовал я это через функцию
if  ((Test-NetConnection 127.0.0.1 -Port 8088).TcpTestSucceeded)

и сделав задание по запуску скрипта каждые 10 минут. Немного топорно, но устаривало.

Собственно сейсач хотелсь бы это переделать, что бы опрос шел непрерывно, по типу пинга.
Подскажите как можно это реализовать, погуглив не особо удалось найти решение которое бы устраивало.
Полный скрипт если что в спойлере
spoiler
$datetime = Get-Date
$From = "..."
$To = "..."
$subject = "...."
$body = "..."
$SMTPServer = "..."
$SMTPPort = "..."
$Username = "..."
$Password = "..."

if ((Test-NetConnection 127.0.0.1 -Port 8088).TcpTestSucceeded)
{
"$datetime | $env:COMPUTERNAME | VCA Core works" | out-file C:\VCACore\Raport.txt -append
write-host "Works" -ForegroundColor Green
}

else {
"$datetime | $env:COMPUTERNAME | VCA Core fucked up!!!" | out-file C:\VCACore\Raport.txt -append
Restart-Service "VCA Core"
write-host "Restarted" -ForegroundColor Yellow
timeout /t 10

if ((Test-NetConnection 127.0.0.1 -Port 8088).TcpTestSucceeded)
{
"$datetime | $env:COMPUTERNAME | Service has restarted" | out-file C:\VCACore\Raport.txt -append
write-host "Restarted" -ForegroundColor Yellow
}

else
{
"$datetime | $env:COMPUTERNAME | VCA CORE FUCKED UP & Mail has been sent " | out-file C:\VCACore\Raport.txt -append

$message = New-Object System.Net.Mail.MailMessage $From, $To
$message.Subject = $subject
$message.IsBodyHTML = $true
$message.Body = $body

$smtp = New-Object System.Net.Mail.SmtpClient($SMTPServer, $SMTPPort)
$smtp.EnableSSL = $true
$smtp.Credentials = New-Object System.Net.NetworkCredential($Username, $Password)
$smtp.Send($message)

}
}
  • Вопрос задан
  • 59 просмотров
Решения вопроса 1
hekkaaa
@hekkaaa
C#/.NET Developer
Привет!
Если я верно понял, что нужно просто сделать бесконечный Ping на текущий код, то просто заверните его функционал в цикл while.
Отменить его можно будет через CTRL+C в консоли.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы