- Готовый скрипт проверки соединения с хостом (проверка инета или хоста)
- а если доработать?
- unixforum.org
- скрипт для пинга (при отсутствии пинга=>разрыв соединения и переподключение)
- скрипт для пинга
- Re: скрипт для пинга
- Re: скрипт для пинга
- Re: скрипт для пинга
- Re: скрипт для пинга
- Про Debian
- Скрипт BASH проверяющий доступность сайта/ip-адреса.
- Скрипт доступности ресурса
- Скрипт доступности ресурса каждые 10 секунд
- Команда ping в Linux
- Как работает ping?
- Команда Ping
- Как пользоваться Ping?
- Выводы
Готовый скрипт проверки соединения с хостом (проверка инета или хоста)
Наткнулся на доработку, но конечного результата там не было. Выкладываю проверенный готовый скрипт:
может лучше в /tmp ? а то пускать от рута пингалку както некошерно
достаточно код возврата от пинга проверять
и вообще много бесполезного кода
Чисто по-мелочи:
Вместо
Путь лога можно под себя исправить по желанию в одном месте. Например на маке рута для /ping.log не нужно.
Путевая подсказка спасибо.
Его надо доустанавливать.
Он рассчитан на использование в скриптах и даёт соответствующий вывод. Если есть возможность то имеет смысл поставить.
Путь лога можно под себя исправить по желанию в одном месте. Например на маке рута для /ping.log не нужно.
не надо засорять рут
А вот на 10.6.8 вывод:
а если доработать?
Вот было бы интересно увидеть такой скрипт, но не на один хост а на, к примеру 5? Т.е. он подряд пингует 5 хостов если не может пингануть один то выводит информацию, что третий недоступен и т.д.
Для этого есть готовые комерческие решения с уведомлением по мылу/sms/etc. когда кто умер и когда поднялся.
Источник
unixforum.org
Форум для пользователей UNIX-подобных систем
- Темы без ответов
- Активные темы
- Поиск
- Статус форума
скрипт для пинга (при отсутствии пинга=>разрыв соединения и переподключение)
Модератор: Bizdelnick
скрипт для пинга
Сообщение foxIG » 13.04.2007 20:13
Re: скрипт для пинга
Сообщение sash-kan » 13.04.2007 20:20
Re: скрипт для пинга
Сообщение foxIG » 13.04.2007 20:46
Re: скрипт для пинга
Сообщение sash-kan » 13.04.2007 21:23
Re: скрипт для пинга
Сообщение foxIG » 13.04.2007 21:38
после получаса соединения падает скорость почти до 0(входящий трафик вообще не идёт), те на запросы ответов нет
# /etc/ppp/peers/
debug
115200
crtscts
modem
lock
novj
persist
nodetach
noipdefault
usepeerdns
defaultroute
connect ‘/usr/sbin/chat -e -f /etc/ppp/chat/connect -v’
/dev/ttyACM0
mtu 1500
user life
nobsdcomp
nodeflate
# /etc/ppp/chat
» AT
TIMEOUT 45
ABORT ‘BUSY’
ABORT ‘NO CARRIER’
ABORT ‘NO DIAL TONE’
ABORT ‘NO ANSWER’
ABORT ‘ERROR’
REPORT ‘CONNECT’
REPORT ‘NO CARRIER’
REPORT ‘NO DIAL TONE’
REPORT ‘NO ANSWER’
REPORT ‘ERROR’
» ATE0
SAY ‘. соединение с GPRS. ‘
» ‘AT+CGDCONT=1,»IP»,»internet»‘
» ATS0=0
» AT+CGQREQ=1,1,1,1,5,18
» AT+CGQMIN=1,1,1,1,5,18
» AT+CGATT?
» ATDT*99***1#
TIMEOUT 22
CONNECT «»
SAY ‘ соединение с GPRS установлено’
вот параметры, может еще что нибудь добавить?
Источник
Про Debian
Набросал на днях простенький скрипт, которые перезапускает сеть при потере пинга.
Тем, кому нужно — поймут как подправить. Пишу в файл специально из некоторых соображений, которые были продиктованы изначальной задачей.
#!/bin/bash
ping -c 3 www.ru > /root/ping
a=$(cat /root/ping | tail -n2 | head -n1 | awk <'print $6'>| sed s/%//)
echo $a
if [ $a != 0 ]
then date > /root/fail && ifdown eth0 && sleep 2 && ifup eth0
fi
echo T
При потере пакетов, отличной от нуля — сервер делает пометку в /root/fail, делает ifdown eth0, ждёт 2 секунды и делает ifup eth0.
При необходимости — поменяйте строку then date > /root/fail && ifdown eth0 && sleep 2 && ifup eth0. Например на pon/poff
Запускать в screen, само собой (или в локальной консоли, если туда есть доступ). Будьте внимательны при остановке скрипта.
запускать так:
while [ 1 ]; do ./root/ping.sh; echo pause; sleep 2; echo script; done
echo pause; sleep 2; echo script; — для того, чтобы не стопнуть скрипт во время его выполнения.
UPD:
Более прогрессивная версия +)
#!/bin/bash
doping () <
ping -c 3 8.8.8.8 > /dev/null
>
dook () <
#what to do if ping ok?
echo «ping ok»
>
doerror () <
# what to do if ping failed?
echo «error»
echo «$(date) ping failed! i am restarting network» >> /var/log/network-fail.log
>
doping && dook || doerror
# this is the end of script.
Источник
Скрипт BASH проверяющий доступность сайта/ip-адреса.
Сегодня в статье разберем пример написания скрипта для проверки доступности ресурса при помощи BASH в Linux. Может кому то будет полезен :).
Скрипт доступности ресурса
- Создадим текстовый файл ping_test.sh со следующим содержанием:
Скрипт будет проверять доступность ресурса при помощи команды ping до тех пор пока данный ресурс не выйдет на связь. Для автоматизации давайте запишем задание в crontab. Задание будет срабатывать при перезагрузке системы.
Также если вам необходимо чтобы еще отправлялось уведомление на почту, то скрипт примет такой вид:
- IP=»10.5.5.1″ — IP-адрес для мониторинга. Через пробел можно указать несколько адресов.
- ping -c 2 -W 1 — количество пакетов посылаемых на сервер
- -f «кому@yandex.ru» — указываю свою почту
- -t «от_кого@yandex.ru» — указываем почту от которой будем отправлять.
- -u «Проблема с доступностью сервера» — тема сообщения
- -m «Сообщение от $(hostname) . $ADDR недоступен с $(date)» — Содержание сообщения
- -xu «логин» — Логин от вашей почты
- -xp «пароль» — Пароль от вашей почты
- -s «smtp.yandex.ru» — Адрес smtp сервера отправки почты, в моем случае это yandex
- -o «message-charset=utf-8» — Кодировка сообщения, без нее будет крякозябры.
- Даем права на исполнение
Для того чтобы сработала отправка почты нужно установить пакет sendemail
- Радуемся, через заданный промежуток времени в событии будет высвечено сообщение о статусе.
Скрипт доступности ресурса каждые 10 секунд
Запускать задание через каждых 10 секунд:
Если есть вопросы, то пишем в комментариях.
Также можете вступить в Телеграм канал, ВК или подписаться на Twitter. Ссылки в шапки страницы.
Заранее всем спасибо.
Источник
Команда ping в Linux
Всем знакомы ситуации, когда интернет на компьютере неожиданно разрывается, такое поведение можно наблюдать при использовании ADSL модемов, Wifi на большом расстоянии, GSM и других подобных ненадежных технологий. Быстро выяснить есть ли на компьютере интернет можно с помощью утилиты ping.
Но область ее применения намного шире, ее используют сетевые администраторы для проверки доступности удаленного узла в сети, она применяется в различных скриптах и многих других местах. В этой статье будет рассмотрена команда ping в Linux, мы поговорим о том, как пользоваться утилитой, как она работает, рассмотрим ее опции и возможности.
Как работает ping?
Утилита ping — это очень простой инструмент для диагностики сети. Она позволяет проверить доступен удаленный хост или нет и все. Для этого утилита проверяет, может ли хост отвечать на сетевые запросы с помощью протокола ICMP.
Надеюсь, не нужно говорить, что все данные по сети передаются в виде небольших пакетов. Программа передает небольшой пакет с данными ICMP и ожидает получить обратно пакет ответа, если получает, то считается что удаленный узел доступен. ICMP или Internet Control Message Protocol — это надстройка над протоколом IP, которая используется для передачи служебных сообщений и сообщений и ошибках.
Протокол ICMP может передавать только два типа пакетов — это сообщения с отчетами про ошибки и сообщения запросов. В свою очередь, сообщения запросов делятся на:
- Сообщение эхо-запрос;
- Сообщение эхо-ответ.
Попытаемся разобраться что делает команда ping. Итак, когда вы отправляете запрос ping удаленному узлу, утилита устанавливает для каждого пакета уникальный идентификатор, а также TTL и время отправки пакета. Если хост доступен, он отправляет ответ, на основе времени отправки утилита может вычислить время прохождения пакета туда и обратно. Затем отправляется следующий пакет. В конце рассчитывается общее количество отправленных и принятых пакетов, процент потерь и другие данные.
Команда Ping
Теперь нам осталось немного попрактиковаться. Но перед тем, как мы перейдем к практике давайте рассмотрим синтаксис команды и ее опции. Синтаксис довольно прост:
$ ping опции адрес_узла
Формат команды ping очень прост. В качестве адреса узла можно передавать как ip адрес, так и доменное имя. Опции настраивают поведение утилиты. Рассмотрим основные из них:
- -4 — использовать только ipv4 (по умолчанию);
- -6 — использовать только ipv6;
- -A — адаптивный режим, время между отправками пакета адаптируется к времени передачи и приема пакета, но не меньше чем 200мс;
- -b — разрешить ping широковещательного адреса;
- -с — количество пакетов, которые нужно отправить;
- -D — выводить время в виде UNIX timestamp;
- -f — режим флуда, в этом режиме пакеты передаются без задержек, может использоваться для совершения DoS атак на отдельные узлы. Количество точек, которые выводит утилита обозначает количество потерянных пакетов;
- -i — интервал в секундах между отправкой пакетов;
- -I — использовать этот сетевой интерфейс для отправки пакетов;
- -l — режим перегрузки, отправляется очень много пакетов и система не следит за ответными пакетами;
- -n — не получать домены для ip адресов;
- -r — игнорировать таблицы маршрутизации и отправить пакет на указанный интерфейс;
- -s — размер одного пакета;
- -t — установить TTL вручную;
- -v — более подробный вывод.
Теперь, когда мы рассмотрели основные параметры команды ping и ее синтаксис, пришло время практики, дальше поговорим о том, как сделать ping определенного узла в Linux.
Как пользоваться Ping?
Для проверки работоспособности сети часто используется программа ping любого сайта, который всегда доступен, например, google.com или еще проще и короче ya.ru. Вам будет достаточно передать утилите в параметрах этот адрес, она сама найдет ip и сделает все нужное:
Как я и писал выше, для каждого пакета выводится уникальный идентификатор icmp_seq, количество узлов до целевого узла ttl и время, потраченное на доставку пакета time. Чтобы остановить ping нажмите сочетание клавиш Ctrl+C. В конце утилита вывела общую статистику:
- packets transmitted — отправлено пакетов;
- received — получено пакетов;
- packet loss — процент потерянных пакетов;
- time — обще время работы;
rtt min/avg/max/mdev — минимальное время/среднее время/максимальное время/квадратичное отклонение.
Если выполнение команды ping не остановить, то пакеты могут отправляться очень долгое время, это создает дополнительную нагрузку на сервер и поэтому не желательно. Вы можете сразу в вызове команды ограничить количество отправляемых пакетов с помощью опции -c:
Точно так же как мы выполняем ping для домена, можно указать ip адрес напрямую. Это позволяет проверить есть ли сеть когда неверно настроены серверы DNS. Например:
Следующий вид отправки ping сообщений, это ping флуд. С помощью таких пакетов можно выполнить нагрузочное тестирование канала или даже заглушить интернет соединение на одной из машин. Но эти функции можно использовать только с правами суперпользователя. Для организации ping флуда укажите опцию -f:
По умолчанию, в обычном режиме, каждый следующий пакет отправляется, когда получен ответ на предыдущий. Но вы можете сами установить интервал между отправкой пакетов -i:
ping -i 0.2 losst.ru
Здесь программа ping выполняет так званный, настраиваемый флуд, вы указываете с какой интенсивностью нужно отправлять пакеты. С помощью опции -D вы можете увидеть Unix Timestamp для каждого сообщения:
Выводы
В этой статье мы рассмотрели что такое команда ping в linux, как ее использовать основные параметры и методы применения. Этот очень простой инструмент можно применять для тестирования неполадок сети и их исправления. В этом плане утилита может стать незаменимой.
Источник