Мое сетевое соединение иногда не очень стабильно и начинает отбрасывать пакеты или полностью повреждаться время от времени, который требует, чтобы я перезапустил сетевое соединение или иногда временно отключил некоторые устройства.
Это - по всей вероятности не проблема Ubuntu, но имеет отношение к аппаратным средствам и экологическим влияниям и интерференции.
То, что я хочу, должно было бы быть уведомлено (всплывающее окно или апплет индикатора), как только мое соединение начинает повреждаться. Обнаружение этого работает путем проверки ping
ответы моего локального маршрутизатора, если я могу достигнуть его, все в порядке.
Можно ли предоставить мне сценарий, который проверяет с помощью ping-запросов мой маршрутизатор о каждой секунде, если соединение активно? Это должно проверить на потерянные пакеты и предупредить меня, если Вы не возвращаетесь.
Как насчет:
#!/bin/bash
dev='eth0'
if { nmcli dev status | grep "^"$dev".* connected" ;} &>/dev/null; then
while :; do
if ping -c 4 -i 0.5 gmail.com &>/dev/null; then
sleep 5
else
sleep 30
until ping -c 4 -i 0.5 gmail.com &>/dev/null; do
notify-send --urgency=critical "Network issue"
sleep 30
done
notify-send --urgency=critical "There was a Network issue, Its Ok now"
fi
done
fi
Сохраняют интерфейс, который Вы хотите контролировать как переменная dev
.
Этот сценарий сначала проверит, закончилось ли соединение, если это произошло затем, это отправит 4 пакета эхо-запроса ICMP с интервалом 0,5 секунд к 192.168.1.1 (предполагающий, что это - Ваш IP-адрес маршрутизаторов). Если какой-либо из пакетов будет иметь ответ эха от маршрутизатора затем, то он будет ожидать в течение 5 секунд прежде, чем указать эти ping
проверка снова.
Теперь, если всем 4 из пакетов не удалось получить ответ от маршрутизатора затем, он будет спать в течение 30 секунд так, чтобы мы не были overwhemed внезапной сетевой вспышкой. После 30 секунд это начнет сверяться ping
снова, если успешно выполнится на этот раз, то сообщение There was a Network issue, Its Ok now
покажут.
, Если это не хорошо все еще, затем сообщение Network issue
покажут, затем это будет ожидать в течение 30 секунд и запустит цикличное выполнение снова, пока любой успешный ответ не будет получен.