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

Длинная история

Я хочу сделать эту работу из командной строки. Есть пара вещей, которые нужно решить.

  1. Как получить доступ к конечной точке http(s) из строки cmd?

    c: \> curl http://the.site

    Это конечная точка https, в которой отсутствуют правильные сертификаты?

    c: \> curl - незащищенный https://the.site

    Пропустить вывод?

    c: \> curl http://the.site> nul
  2. Как сделать звук из командной строки?

    c: \> echo ^G

    Это Ctrl+G

  3. Как условно подать звуковой сигнал, когда curl Команде удается?

    c: \> curl http://the.site && echo ^G

    Что делать, если вы хотите звуковой сигнал, когда он выходит из строя?

    c: \> curl http://the.site || эхо ^G
  4. Как вы запускаете что-то в цикле?

    использование for /L %x in (start,step,end) без указания начала, шага, конца:

    c: \> for / L% x in () do (повторить эхо) 
  5. Ввод echo ^G внутри тела петли выводит его на консоль и, таким образом, издает звуковой сигнал независимо от curl Команда не выполнена или нет.
    Поэтому мы должны найти способ подать звуковой сигнал без непосредственного вывода ^G персонаж.

    c: \> echo echo ^G> beep.bat 

    Теперь вы можете издавать звуковой сигнал, просто позвонив beep,

  6. Собираем все вместе:

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), но это все равно может быть полезно в зависимости от ваших потребностей.

Другие вопросы по тегам