как получить значение из ping?

На самом деле это единственный раздел про unix на этом форуме

Модераторы: /dev/random, Модераторы разделов

Аватара пользователя
Aleks_dem
Сообщения: 165
ОС: Linux Mint (console или Mate)

как получить значение из ping?

Сообщение Aleks_dem »

Привет!
Подскажите, пожалуйста, скрипт, который бы пинговал определенный сервер и на выходе давал только одно число. (ms - не важно какое, min или avg, пинг нужен по сути единичный)
Оно нужно для внесения в БД, на основании чего уже будет рисоваться график.
Заранее благодарю!
Спасибо сказали:
allez
Сообщения: 2223
Статус: Не очень злой админ :-)
ОС: SuSE, CentOS, FreeBSD, Windows

Re: как получить значение из ping?

Сообщение allez »

Aleks_dem писал(а):
11.11.2009 17:35
и на выходе давал только одно число.
Какое число?
Спасибо сказали:
Аватара пользователя
Aleks_dem
Сообщения: 165
ОС: Linux Mint (console или Mate)

Re: как получить значение из ping?

Сообщение Aleks_dem »

allez писал(а):
11.11.2009 17:35
Aleks_dem писал(а):
11.11.2009 17:35
и на выходе давал только одно число.
Какое число?

Пинг единичный, поэтому значение min или какое-либо другое - не важно. :)
Спасибо сказали:
Аватара пользователя
lava
Сообщения: 155
ОС: archer

Re: как получить значение из ping?

Сообщение lava »

allez писал(а):
11.11.2009 17:35
Какое число?

42

Я так понимаю, это:
6 packets transmitted, 6 received, 0% packet loss, time 5001ms
rtt min/avg/max/mdev = 0.556/0.652/0.759/0.069 ms

Среднее значение пинга

Код: Выделить всё

ping -q -c5 -i0.2 192.168.117.35 | awk -F\/ '/^rtt/ { print $5; }'


Или это:
6 packets transmitted, 6 received, 0% packet loss, time 5001ms
rtt min/avg/max/mdev = 0.556/0.652/0.759/0.069 ms

Процент потерь

Код: Выделить всё

ping -q -c5 -i0.2 192.168.117.35 | awk '/%/ { print $6; }'

Код: Выделить всё

ping -q -c5 -i0.2 192.168.117.35 | awk '/%/ { print $6; }' | cut -c [0-9]


Aleks_dem писал(а):
11.11.2009 17:46
Пинг единичный

заменить -c5 на -c1
Спасибо сказали:
Аватара пользователя
drBatty
Сообщения: 8735
Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
ОС: Slackware-current

Re: как получить значение из ping?

Сообщение drBatty »

rtt min

Код: Выделить всё

$ ping -c1 google.com | sed -rn '$s/.*= ([0-9.]+).*/\1/p'
68.253

avg

Код: Выделить всё

$ ping -c1 google.com | sed -rn '$s~.*= [^/]+/([0-9.]+).*~\1~p'
99.983
http://emulek.blogspot.ru/ Windows Must Die
Учебник по sed зеркало в github

Скоро придёт
Осень
Спасибо сказали:
Аватара пользователя
rm_
Сообщения: 3340
Статус: It's the GNU Age
ОС: Debian

Re: как получить значение из ping?

Сообщение rm_ »

Выше уже написали, как правильно, а вот как совсем по-простому (но тоже работает):

Код: Выделить всё

ping -c1 google.com | tail -n1 | cut -d / -f 5

Если вдруг sed'а или awk'а нет. :)
Спасибо сказали: