Я использую Zabbix агент (программное обеспечение для ведения журналов) в Ubuntu и хочу пропинговать внутренний IPIP/GRE-туннель, чтобы постоянно измерять качество соединения.
Теперь агент Zabbix по умолчанию не позволяет выполнять команду ping для внутреннего туннеля, но, к счастью, он позволяет создавать "пользовательские параметры", в основном он позволяет выполнить одну команду оболочки unix и передать данные в ваше программное обеспечение.
Для этого мне нужно выполнить команду fping/ping, которая получает одно значение для zabbix. Я хочу, чтобы это значение было числом десятичных секунд или миллисекунд задержки или 0 при отсутствии соединения для чего-либо более 1 секунды. Ниже я уже разработал команду, которая выполняет 5 пингов на IP туннеля, а затем возвращает средние значения.
(IP-адрес ниже является примером данных) это то, что я получил до сих пор:
fping -e -q -p 1000 -c 5 8.8.4.4 2> /dev/null | grep -oP '[0-9\.]+/([0-9\.]+)/[0-9\.]+$'
Полная возвращаемая строка выглядит так:
8.8.4.4 : xmt/rcv/%loss = 5/5/0%, min/avg/max = 2.78/2.94/3.19"
Теперь результат grep такой:
2.78/2.94/3.19
Я хочу последовательно получить второе значение (2.94 выше), поэтому мой вопрос заключается в том, какой самый эффективный способ сделать это в одной команде?