Войти

Показать полную графическую версию : Перезапуск службы, если web-сервер, если не откликается


epoddubniy
08-10-2021, 12:25
Здравствуйте. Помогите пожалуйста.

Есть веб сервер по адресу 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
if ((Test-NetConnection 127.0.0.1 -Port 8000).TcpTestSucceeded -ne $true) {Restart-Service webserver}

Цикличность задаётся в планировщике.

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

start http://127.0.0.1:8000

epoddubniy
09-10-2021, 08:10
DJ Mogarych, скажите пожалуйста, как правильно написать код, чтобы вывод можно было логировать в файл?

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

if ((Test-NetConnection 127.0.0.1 -Port 8000).TcpTestSucceeded -ne $true) {Restart-Service webserver} [b]| Out-file "[b]$env:userprofile\Desktop\webserver-ps-log.txt" -Append »
в этом куске ругается на
https://i.ibb.co/D1QHmYs/image.png (https://ibb.co/b6XMYFq)

DJ Mogarych
09-10-2021, 09:28
{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
}




© OSzone.net 2001-2012