Какое программное обеспечение будет воспроизводить оповещение (динамик ПК), если в течение 5 минут нет подключения к Интернету?
Кажется, мой коммутатор / маршрутизатор отключается каждые несколько дней, и я хочу сбросить его, когда это произойдет.
PC -- TP-Link switch/router -- FO
192.168.x.1 -- 192.168.x.2 / x.y.z.a -- a.b.c.d
networking
audio
monitoring
Kokizzu
источник
источник
Ответы:
Вы можете использовать модифицированную версию этого скрипта, чтобы делать то, что вы хотите:
Мы "СВЯЗАННЫЙ" Пример
С включенной отладкой вы можете увидеть, что делает скрипт.
Запуск с действительным именем хоста для демонстрации состояния «соединение установлено».
Вышеприведенный код инициализирует пару переменных и определяет, когда мы в последний раз проходили цикл
$lastAccessTime
. Теперь попробуем пинговать гугл.Теперь мы вычисляем любое время простоя
$downTime
, если ping не удается, в противном случае, мы сбрасываем$downTime
на ноль и пересчитываем$lastAccessTime
.Теперь ждем 15 секунд.
Теперь мы проверим, были ли мы не более 5 минут (300 секунд). Затем мы повторяем прохождение
while
цикла.Пока мы встаём, ничего не случится, кроме того, что мы проверяем
ping
команду каждые 15 секунд.Мы "ОТКЛЮЧЕННЫЙ" Пример
Теперь, чтобы смоделировать состояние «соединение разорвано», мы поменяем имя хоста, которое пингуем, и используем поддельное имя
google1234567890.com
. Повторяя запуск нашего скрипта с включенной отладкой, мы теперь видим, как вычисляется некоторое время простоя.Обратите внимание, что на данный момент
$downTime
оно равно 15 секундам. Если мы подождем еще немного, мы увидим это:Мы накопили 300 секунд простоя. Итак, теперь, когда мы проверяем, мы печатаем сообщение
alert
.Это состояние будет продолжаться до тех пор, пока соединение не будет восстановлено и
ping
снова не будет успешным.Так что насчет звука?
Это легко. Вы можете использовать различные инструменты для этого. Я хотел бы использовать что-то вроде
sox
илиmplayer
для воспроизведения аудиофайла, такого как.mp3
или.wav
файл с соответствующим звуком, который вы хотите слышать каждые 15 секунд, когда соединение не работает.Просто замените
alert
сообщение выше этой строкой, чтобы получить звуковую обратную связь о том, что соединение разорвано.Решая проблемы с пингом
Если вы воспользуетесь
ping
описанным выше способом, вы, вероятно, столкнетесь с медленным временем задержки, когдаping
для сбоя соединения при разрыве соединения требуется буквально 10-20 секунд. Смотрите мой ответ на этот вопрос и ответ U & L под названием: Как перенаправить вывод любой команды? для примера, используяfing
вместо этого инструмент командной строки . Этот инструмент выйдет из строя быстрее, чем традиционныйping
.источник
beep
команду, это безопасно,chown /dev/tty0
чтобы я мог использовать его безsudo
?/dev/tty0
.sox
! @Kokizzu - право ОДС в о выходе разрешения на/dev/tty0
устройство в одиночку, но вы можете получить псевдо-терминал/dev/pts/[num]
устройство - один и тот же тип устройства символов,xterm
использование для каждого окна, например - с чем - то вродеscreen
илиtmux
или дажеssh
. Этим вы можете более безопасно управлять, так как они в/dev/ptmx
любом случае являются только подчиненными устройствами на главном устройстве и не вызовут таких же проблем, как, скажем,/bin/login
процесс, принадлежащий пользователю, - что может случиться в другом случае.aplay alert.wav
это более стандартный способ воспроизведения звука, поскольку он является частью системы ALSA и поставляется в большинстве дистрибутивов.если вы используете Linux, вы можете использовать ping в скрипте,
google.com
например:источник
fing
вместоping
.ping
CMD. может потерпеть неудачу, если это не удастся. Командаfing
с другой стороны потерпит неудачу в течение 1 секунды. См. Мои ответы на эти вопросы и ответы: как перенаправить вывод любой команды? , Я показываю как с помощьюping
иfing
.sleep 1
достаточно, чтобы предотвратить это.