Ping — это одна из самых базовых и полезных сетевых утилит в Linux (и других ОС). Её главная задача — проверить доступность сетевого узла и измерить параметры соединения. Это одна из базовых утилит траблшутинга сетевых проблем системного администратора.
Пингуем хост и проверяем, есть ли задержки. Когда проблема плавающая, бывает сложно поймать тот момент, когда хост долго отвечает.
Linux
Немного модифицируем ping в Linux, чтобы отображать только долгие ответы.
Например, ответ такой:
64 bytes from 10.224.60.6: icmp_seq=14 ttl=128 time=0.278 msНам не интересно time=0.278 ms, хочется поймать более долгие ответы. Пишем однострочник:
ping 192.168.0.1 \
| grep -E "time=[1-9]{1}" --line-buffered \
| gawk '{ print strftime("%Y-%m-%d %H:%M:%S"), $0; fflush(); }'Теперь увидим результат только если время ответа 1 и более мс. Или можно так:
ping 192.168.0.1 \
| grep -E "time=[0-9]{2}" --line-buffered \
| gawk '{ print strftime("%Y-%m-%d %H:%M:%S"), $0; fflush(); }'Теперь увидим результат только если время ответа 10 и более мс. Принцип понятен.

Windows
А в Windows? Немного GPT и получаем для русскоязычной версии:
for /l %i in (0,0,0) do @(for /f "tokens=1 delims=." %t in ("%time%") do @(ping -n 1 192.168.1.1 | findstr "время=[1-9][0-9]")) & timeout /t 1 /nobreak >nulРезультат немного не такой, потому что не выводится дата и время, но принцип тот же.

