Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   Перезапуск службы, если web-сервер, если не откликается (http://forum.oszone.net/showthread.php?t=349761)

epoddubniy 08-10-2021 12:25 2968301

Перезапуск службы, если web-сервер, если не откликается
 
Здравствуйте. Помогите пожалуйста.

Есть веб сервер по адресу http://127.0.0.1:0000/
Нужен скрипт, который бы циклически проверял доступность сервера по указанному адресу и в случае, если он не доступен, то проверка доступности сервера останавливалась, перезапускалась служба webserver, и потом проверка снова возобновлялась.



Доступность сервера проверял командой
Код:

Invoke-WebRequest -Uri 127.0.0.1:8000
Перезапуск службы осуществлял командами:
Код:

Stop-Service -Name webserver
Start-Service -Name webserver

А как это все связать в один отлаженный процесс - загадка.

DJ Mogarych 08-10-2021 14:01 2968306

Код:

if ((Test-NetConnection 127.0.0.1 -Port 8000).TcpTestSucceeded -ne $true) {Restart-Service webserver}
Цикличность задаётся в планировщике.

epoddubniy 09-10-2021 07:42 2968361

DJ Mogarych, спасибо! DJ Mogarych, Скажите пожалуйста, как будет выглядеть код, если нужно еще выполнить это действие:

Код:

start http://127.0.0.1:8000

epoddubniy 09-10-2021 08:10 2968363

DJ Mogarych, скажите пожалуйста, как правильно написать код, чтобы вывод можно было логировать в файл?

Код:

write-host "старт скрипта" | Out-file "[b]$env:userprofile\Desktop\webserver-ps-log.txt" -Append
get-date | Out-file "[b]$env:userprofile\Desktop\webserver-ps-log.txt" -Append
if ((Test-NetConnection 127.0.0.1 -Port 8000).TcpTestSucceeded -ne $true) {Restart-Service webserver} | Out-file "[b]$env:userprofile\Desktop\webserver-ps-log.txt" -Append
get-date | Out-file "[b]$env:userprofile\Desktop\webserver-ps-log.txt" -Append
start http://127.0.0.1:8000 | Out-file "$env:userprofile\Desktop\webserver-ps-log.txt" -Append
get-date | Out-file "[b]$env:userprofile\Desktop\webserver-ps-log.txt" -Append

Цитата:

Цитата epoddubniy
if ((Test-NetConnection 127.0.0.1 -Port 8000).TcpTestSucceeded -ne $true) {Restart-Service webserver} | Out-file "[b]$env:userprofile\Desktop\webserver-ps-log.txt" -Append »

в этом куске ругается на

DJ Mogarych 09-10-2021 09:28 2968369

Код:

{Restart-Service webserver; start http://127.0.0.1:8000}
# или
{
Restart-Service webserver
start http://127.0.0.1:8000
}

Код:

if (($test = Test-NetConnection ya.ru -Port 443).TcpTestSucceeded -ne $true) {
(get-date).ToString() + "`t" + $test.TcpTestSucceeded >> "$env:userprofile\Desktop\webserver-ps-log.txt"
Restart-Service webserver
}



Время: 05:27.

Время: 05:27.
© OSzone.net 2001-