Привет!
Подскажите, пожалуйста, скрипт, который бы пинговал определенный сервер и на выходе давал только одно число. (ms - не важно какое, min или avg, пинг нужен по сути единичный)
Оно нужно для внесения в БД, на основании чего уже будет рисоваться график.
Заранее благодарю!
как получить значение из ping?
Модераторы: /dev/random, Модераторы разделов
-
- Сообщения: 165
- ОС: Linux Mint (console или Mate)
-
- Сообщения: 2223
- Статус: Не очень злой админ :-)
- ОС: SuSE, CentOS, FreeBSD, Windows
-
- Сообщения: 165
- ОС: Linux Mint (console или Mate)
-
- Сообщения: 155
- ОС: archer
Re: как получить значение из ping?
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]
заменить -c5 на -c1
Спасибо сказали:
-
- Сообщения: 8735
- Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
- ОС: Slackware-current
Re: как получить значение из ping?
rtt min
avg
Код: Выделить всё
$ 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
-
- Сообщения: 3340
- Статус: It's the GNU Age
- ОС: Debian
Re: как получить значение из ping?
Выше уже написали, как правильно, а вот как совсем по-простому (но тоже работает):
Если вдруг sed'а или awk'а нет.
Код: Выделить всё
ping -c1 google.com | tail -n1 | cut -d / -f 5
Если вдруг sed'а или awk'а нет.
