Windows - получить звуковое оповещение при резервном копировании сайта
Конкретная конечная точка https, в которой я заинтересован, не работает. Мне нужен способ отслеживать, когда он возвращается, и получать звуковое оповещение, когда это происходит. Как мне это сделать в Windows?
5 ответов
TL;DR
- Скачать локон
запустите это в cmd.exe:
c: \> echo echo ^G> beep.bat c: \> for / L% x in () do (curl --insecure https: //endpoi.nt> nul && call beep)
Это Ctrl-G. Вы не можете скопировать этот символ сверху, вам нужно набрать Ctrl-G
Длинная история
Я хочу сделать эту работу из командной строки. Есть пара вещей, которые нужно решить.
Как получить доступ к конечной точке http(s) из строки cmd?
c: \> curl http://the.site
Это конечная точка https, в которой отсутствуют правильные сертификаты?
c: \> curl - незащищенный https://the.site
Пропустить вывод?
c: \> curl http://the.site> nul
Как сделать звук из командной строки?
c: \> echo ^G
Это Ctrl+G
Как условно подать звуковой сигнал, когда
curlКоманде удается?c: \> curl http://the.site && echo ^G
Что делать, если вы хотите звуковой сигнал, когда он выходит из строя?
c: \> curl http://the.site || эхо ^G
Как вы запускаете что-то в цикле?
использование
for /L %x in (start,step,end)без указания начала, шага, конца:c: \> for / L% x in () do (повторить эхо)
Ввод
echo ^Gвнутри тела петли выводит его на консоль и, таким образом, издает звуковой сигнал независимо отcurlКоманда не выполнена или нет.
Поэтому мы должны найти способ подать звуковой сигнал без непосредственного вывода^Gперсонаж.c: \> echo echo ^G> beep.bat
Теперь вы можете издавать звуковой сигнал, просто позвонив
beep,Собираем все вместе:
c: \> for / L% x in () do (curl --insecure https: //endpoi.nt> nul && call beep)
Что касается звукового сигнала в окнах: если вы используете:: start [/wait] AudioFile, например, звуки в%SystemRoot%\Media", он откроет медиаплеер, что вызовет проблемы. Вы можете играть в.wav с помощью скрипта vbs, который все еще работает в Windows 10v1803, например, alarm05.vbs
' alarm sound
Set oVoice = CreateObject("SAPI.SpVoice")
set oSpFileStream = CreateObject("SAPI.SpFileStream")
oSpFileStream.Open "C:\Windows\Media\Alarm05.wav"
oVoice.SpeakStream oSpFileStream
oSpFileStream.Close
позвонить с летучей мыши, например, beep.bat
:: start a VBScript
start "" alarm05.vbs
exit
Завершите версию Webcheck с помощью Powershell, например, checkite.ps1, щелкните правой кнопкой мыши "Run with powershell".
# https://www.dennis-stepp.com/post/uricheck/ ps by Dennis Eugene Stepp, Jr.
# First we create the request.
$HTTP_Request = [System.Net.WebRequest]::Create('http://google.com')
# $HTTP_Request = [System.Net.WebRequest]::Create('http://google.off')
# We then get a response from the site.
$HTTP_Response = $HTTP_Request.GetResponse()
# We then get the HTTP code as an integer.
$HTTP_Status = [int]$HTTP_Response.StatusCode
If ($HTTP_Status -eq 200) {
Write-Host "Site is OK!"
[console]::beep(880,300)
}
Else {
Write-Host "The Site may be down, please check!"
[console]::beep(440,300)
}
# Finally, we clean up the http request by closing it.
$HTTP_Response.Close()
pause
Другой вариант: использовать httping
Он имеет версию для Windows, хороший цветной вывод и может подавать звуковые сигналы:
httping --audible-ping --colors --url http://google.com
while ($true) {if (Test-Connection -quiet 8.8.8.8) { [console]::beep() }}
РЕДАКТИРОВАТЬ: Извините, я предполагал, что весь хост отключен, и что при включении у вас был ответ на пинг с того же хоста. Если вам не нужно проверять содержимое конечной точки HTTPS, это должно сделать следующее:
while ($true) {if ((Test-netConnection -ComputerName www.google.com -Port 443).TcpTestSucceeded) { [console]::beep() }}
Простое решение — использовать Fping (https://github.com/dexit/fping-windows) с-bфлаг, который будет подавать звуковой сигнал каждый раз, когда вы получаете ответ:
fping.exe host.domain.com -b
Вы также можете использовать-b-чтобы получать звуковой сигнал каждый раз, когда пинг терпит неудачу, что полезно, когда вы хотите получать уведомления о выходе хоста из строя:
fping.exe 12.34.56.67 -b-
Fping также поддерживает проверку связи с несколькими хостами и запись в файл, что позволяет избежать необходимости открывать несколько командных строк.
ПРИМЕЧАНИЕ. Здесь используется протокол ICMP, поэтому отображается только состояние хоста, а не фактическая конечная точка HTTP(S), но это все равно может быть полезно в зависимости от ваших потребностей.
