LinuxForum.Fans
Тема

ping проверка качества канала

Автор: tnega 17 сообщений 1935 просмотров
#371039

Всем привет.

имеется скрипт для проверки качества интернет канала средствами ping, пингуется определенный ресурс по определенному каналу, пингуется двумя пакетами, в случае не прохождения пакетов идет переключение на такой канал.

в последнее время на основном канале возникли проблемы с качеством. теряются пакеты.

хотелось бы написать скрипт который например следил за КАЧЕСТВОМ - отправлял бы 10 пакетов, и если 3 из них пропадают - ELSE, а если 1, то then

я думаю моя мысль ясна. я в линуксе пока новичок, прошу строго не судить.

#371040

man ping
там много чего интересного найдете для себя. я когда то тоже страдал этой ерундой до прочтения маны

#371041

Вот вам заготовка. Думаю, в ней все достаточно понятно.

text

#!/bin/bash

# Записываем в переменную _loss процент потерянных пакетов _loss=$(ping -q -c 10 ya.ru | grep -Eo "[[:digit:]]{1,}%" | sed 's/%//')

# Проверяем количество потерянных пакетов if [ $_loss -lt 30 ]; then # Потери не превышают 30 % echo "Good" else # Потери составляют 30 % и более echo "Bad" fi

#371043

allez
Потери пакетов не то что не должны превышать 30% - потерь просто не должно быть :)
Нет?
Иначе - зачем нам такой канал?

#371044

allez, можно без sed:

text
_loss=$(ping -q -c 10 ya.ru | grep -Po "[[:digit:]]+(?=%)"
#371045

mvt, дык мотороллер не мой - это условие было поставлено автором темы. :)

"tnega" написал:
отправлял бы 10 пакетов, и если 3 из них пропадают

Так-то да, шел бы в пень канал с такими потерями. Но ведь всякое в жизни бывает, возможно у автора просто другого выбора нет.

#371046

-=Serj=-, согласен, можно. Моя прохудившаяся память просто сразу не подкинула мне нужное регулярное выражение, вот я и обошел эту проблему другой дорожкой. :) Да и заготовка это, быстренькая и грязненькая. Я почти всегда так делаю: выдаю пусть неоптимальное, пусть не слишком красивое, но заведомо рабочее решение. А доводку его до ума оставляю вопрошающим: пусть и они что-нибудь для себя, любимых, сделают. :)

#371049
mvt написал:
allez
Потери пакетов не то что не должны превышать 30% - потерь просто не должно быть :)
Нет?
Иначе - зачем нам такой канал?

такое иногда возникает, это не всегда!
и мне нужно, все равно чтобы этот канал перестал быть активным.

#371053
allez написал:
Вот вам заготовка. Думаю, в ней все достаточно понятно.
text

#!/bin/bash

# Записываем в переменную _loss процент потерянных пакетов _loss=$(ping -q -c 10 ya.ru | grep -Eo "[[:digit:]]{1,}%" | sed 's/%//')

# Проверяем количество потерянных пакетов if [ $_loss -lt 30 ]; then # Потери не превышают 30 % echo "Good" else # Потери составляют 30 % и более echo "Bad" fi

делаю по вашему способо, ругается на -lt
"./ping.sh: 6: [: -lt: unexpected operator"

#371055

tnega
Я вот инженер, а не программист. Вы неправильно ищете решение вопроса.
Понимаете, если бордель больше не приносит прибыли - перестановка мебели по "феншую", как правило, не исправляет проблему. Б контингент нужно менять... В Вашем случае - провайдера... :)

#371061
mvt написал:
tnega
Я вот инженер, а не программист. Вы неправильно ищете решение вопроса.
Понимаете, если бордель больше не приносит прибыли - перестановка мебели по "феншую", как правило, не исправляет проблему. Б контингент нужно менять... В Вашем случае - провайдера... :)

да не в этом дело :-) как и у всех провайдеров, бывают проблемы с качеством канала, у провайдеров ведь еще есть вышестоящие провайдеры :-) иногда бывают проблемы с потерями пакетов, может раз в 3 месяца, или два раза в месяц :-) всегда по разному :-)
а мне как маленькому провайдеру, хотелось бы, чтобы качество МОИХ услуг было на высоте, и отгородить пользователей своих от плохого качества интернета и переключить их на другой канал :-) резервный :-)

#371063

Тогда - читайте allez Работать будет без проблем.

#371069
"tnega" написал:
делаю по вашему способо, ругается на -lt "./ping.sh: 6: [: -lt: unexpected operator"

Покажите весь ваш скрипт, пожалуйста. Так легче будет разобраться.
У меня эта конструкция работает:

text

$ _loss=$(ping -q -c 10 ya.ru | grep -Po "[[:digit:]]+(?=%)"); if [ $_loss -lt 30 ]; then echo "Good"; else echo "Bad"; fi
Good

$ _loss=$(ping -q -c 10 yo.ru | grep -Po "[[:digit:]]+(?=%)"); if [ $_loss -lt 30 ]; then echo "Good"; else echo "Bad"; fi Bad

#371070
mvt написал:
потерь просто не должно быть :)

точно

#371076

moshell, тут ситуация примерно как в приснопамятном анекдоте: "слова нет, а *опа есть". :) Вот и потерь быть не должно, но они есть. И что самое противное, они могут быть вызваны вовсе не техническими проблемами.

Чуть больше десятка лет назад, например, в России было только два магистральных провайдера: "Ростелеком" и "Транстелеком". И между ними шла война из-за того, что в руководстве обеих компаний было слишком много каменномозглых идиотов, сумевших усвоить только одну идею - "конкурентов надо давить". В итоге паны дрались, а у холопов чубы трещали, то бишь, "Р" и "Т" жестоко шейпили трафик, которым обменивались друг с другом, а проблемы из-за этого возникали у конечных пользователей и провайдеров нижнего уровня, к которым принадлежит и автор темы. Например, если ваш провайдер пользуется каналом "Транстелекома", а нужный вам сайт находится в сети "Ростелекома", готовьтесь к тому, что работа с этим сайтом будет медленной и печальной, если вообще будет возможна. Про VPN между точками, находящимися в разных сетях я и вовсе умолчу.

В общем, в те годы мне довелось поработать админом и в небольшой провайдерской компании, и в обычных коммерческих конторах с обширной филиальной сетью, поэтому я прочувствовал на своей шкуре все "прелести" дрязг между магистралами. В итоге провайдеры всеми правдами и неправдами стали стараться держать в аплинках обе воюющие стороны, а пользователи стали стараться подключаться именно у таких провайдеров.

И одним из самых гнусных нюансов той распри был тот факт, что главные центры передачи данных у "Ростелекома" и "Транстелекома" находились физически очень близко друг к другу - то ли в одном комплексе зданий, то ли даже в одном здании, сейчас уже точно не вспомню. То есть, для них взаимный трафик был вообще бесплатен. Казалось бы, что мешало, ничем этот трафик не ограничивая, просто слегка приподнять на него цены для клиентов? Примерно так поступили украинские провайдеры, установив разные цены для внутриукраинского и зарубежного трафика. Но "Р" и "Т" предпочли пободаться. :)

#371081

Ростелеком вчера звонил. Спрашивала девочка о качестве услуги. А я сказал честно- я их послал до того времени, когда они проведут оптику в дом... Вот, жду... :)

#371088
allez написал:
moshell, тут ситуация примерно как в приснопамятном анекдоте: "слова нет, а *опа есть". :) Вот и потерь быть не должно, но они есть. И что самое противное, они могут быть вызваны вовсе не техническими проблемами.

Чуть больше десятка лет назад, например, в России было только два магистральных провайдера: "Ростелеком" и "Транстелеком". И между ними шла война из-за того, что в руководстве обеих компаний было слишком много каменномозглых идиотов, сумевших усвоить только одну идею - "конкурентов надо давить". В итоге паны дрались, а у холопов чубы трещали, то бишь, "Р" и "Т" жестоко шейпили трафик, которым обменивались друг с другом, а проблемы из-за этого возникали у конечных пользователей и провайдеров нижнего уровня, к которым принадлежит и автор темы. Например, если ваш провайдер пользуется каналом "Транстелекома", а нужный вам сайт находится в сети "Ростелекома", готовьтесь к тому, что работа с этим сайтом будет медленной и печальной, если вообще будет возможна. Про VPN между точками, находящимися в разных сетях я и вовсе умолчу.

В общем, в те годы мне довелось поработать админом и в небольшой провайдерской компании, и в обычных коммерческих конторах с обширной филиальной сетью, поэтому я прочувствовал на своей шкуре все "прелести" дрязг между магистралами. В итоге провайдеры всеми правдами и неправдами стали стараться держать в аплинках обе воюющие стороны, а пользователи стали стараться подключаться именно у таких провайдеров.

И одним из самых гнусных нюансов той распри был тот факт, что главные центры передачи данных у "Ростелекома" и "Транстелекома" находились физически очень близко друг к другу - то ли в одном комплексе зданий, то ли даже в одном здании, сейчас уже точно не вспомню. То есть, для них взаимный трафик был вообще бесплатен. Казалось бы, что мешало, ничем этот трафик не ограничивая, просто слегка приподнять на него цены для клиентов? Примерно так поступили украинские провайдеры, установив разные цены для внутриукраинского и зарубежного трафика. Но "Р" и "Т" предпочли пободаться. :)

этой войны никогда не было. был ростелеком со своим говно.)м которое впихивали.
теперь ростелеком вышел на рынок сотовых услуг. связь гов-но конечно. я лично запускаю по дефолту базовые станции, а не по дефолту - бабла нет якобы у ростелекома. на всем хотят нажраться, только и слышно что за откаты делают. Вот откуда тут качесвтво? если эриксон еще не настроили а уже интегрируют с нонаме-конторами

Войдите или зарегистрируйтесь, чтобы ответить.