Издавать звук при подключении к интернету

Вопрос или проблема

Как я могу воспроизвести звук при подключении к интернету? Я нашел скрипт на Python, но должно быть более простое решение.

Я просто хочу воспроизводить звук при подключении. Даже notify-send подойдет.

Я хочу узнать, когда подключение к интернету возможно, чтобы не открывать браузер и не получать сообщение “не удается найти веб-страницу”.

Я думаю, что могу сделать что-то вроде этого:

#!/usr/bin/env bash

for i in {1..5}; do
    ping -i0.5 -c3 -w3 google.com ||
        {
            sleep 5
            continue
        }

    aplay path/to/beep.wav
    break
done

Скрипт будет проверять “доброжелательное соединение” 5 раз, ожидая 5 секунд между каждой проверкой, прежде чем сдаться.

Определение “доброжелательного соединения” здесь: если мы можем отправить ICMP-запрос на google.com и получить ICMP-ответ 3 раза, ожидая 0,5 секунды между каждым запросом/ответом и завершая весь цикл за 3 секунды, тогда у нас есть “доброжелательное соединение”.

Если скрипт обнаружит “доброжелательное соединение”, он воспроизведет path/to/beep.wav.

Вы можете поместить скрипт в ~/bin/connection_test.sh, выполнить chmod +x ~/bin/connection_test.sh и добавить его в Автозагрузку, чтобы он выполнялся при входе в графическую сессию.

path/to/beep.wav должен быть либо относительным путем от вашей домашней директории, либо (что лучше) полным путем к файлу .wav, который нужно воспроизвести (для проверки я загрузил файл mp3 с https://pixabay.com/it/sound-effects/search/beeps/ и конвертировал его в .wav с помощью ffmpeg -i beep.mp3 beep.wav).

Есть также способы воспроизводить звуковой сигнал через динамик ПК, если у вас есть такой в наши дни.

Ответ или решение

Чтобы воспроизводить звук при подключении к интернету, действительно можно использовать описанный вами подход с помощью Bash-скрипта. Позвольте предложить полный и понятный ответ на ваш вопрос.

Решение

Создание Bash-скрипта, который проверяет наличие подключения к интернету и воспроизводит звук, – это простой и эффективный метод. Вот как вы можете это сделать:

  1. Создание скрипта

    Откройте терминал и создайте новый файл, например, connection_test.sh в вашем каталоге ~/bin/:

    mkdir -p ~/bin
    nano ~/bin/connection_test.sh
  2. Вставьте следующий код

    Вставьте следующий код в файл connection_test.sh:

    #!/usr/bin/env bash
    
    # Максимальное количество попыток
    MAX_ATTEMPTS=5
    # Интервал ожидания между попытками
    WAIT_TIME=5
    # Путь к звуковому файлу
    SOUND_FILE="/path/to/beep.wav"
    
    for i in $(seq 1 $MAX_ATTEMPTS); do
       # Проверка соединения
       if ping -c 3 google.com > /dev/null 2>&1; then
           aplay "$SOUND_FILE"
           exit 0
       fi
       sleep $WAIT_TIME
    done
    echo "Не удалось подключиться к интернету."

    Важно заменить /path/to/beep.wav на фактический путь к вашему звуковому файлу.

  3. Сделайте скрипт исполняемым

    В терминале выполните команду:

    chmod +x ~/bin/connection_test.sh
  4. Добавление скрипта в автозагрузку

    Чтобы этот скрипт запускался автоматически при входе в систему, добавьте его в "Программы автозагрузки". В зависимости от используемого вами дистрибутива Linux, это можно сделать различными способами:

    • В Ubuntu: откройте "Программы автозагрузки" и добавьте новую запись, указав путь к вашему скрипту ~/bin/connection_test.sh.
    • В других дистрибутивах можете использовать аналогичные инструменты для настройки автозагрузки.

Альтернативные решения

Если вам не обязательно использовать Bash-скрипт, вы также можете рассмотреть использование утилиты notify-send, которая позволяет отправлять уведомления. Для этого вы можете добавить строку в скрипт, производящую уведомление при успешной проверке соединения:

notify-send "Подключено к интернету" "Теперь вы можете начинать серфинг!"

Таким образом, ваш скрипт будет выглядеть так:

#!/usr/bin/env bash

# Максимальное количество попыток
MAX_ATTEMPTS=5
# Интервал ожидания между попытками
WAIT_TIME=5
# Путь к звуковому файлу
SOUND_FILE="/path/to/beep.wav"

for i in $(seq 1 $MAX_ATTEMPTS); do
    if ping -c 3 google.com > /dev/null 2>&1; then
        aplay "$SOUND_FILE"
        notify-send "Подключено к интернету" "Теперь вы можете начинать серфинг!"
        exit 0
    fi
    sleep $WAIT_TIME
done
echo "Не удалось подключиться к интернету."

Заключение

Таким образом, вы можете легко настроить уведомление или звук при установлении интернет-соединения с помощью простого Bash-скрипта. Это значительно упростит процесс, когда вы хотите убедиться в доступности сети, прежде чем начинать использование браузера.

Оцените материал
Добавить комментарий

Капча загружается...