Как использовать опцию отметки времени в ping
Я заметил, что в справке ping есть опция метки времени -T. Но я не знаю, как его использовать.
Я старался:
ping www.google.com -T
Вот что я получаю:
Invalid timestamp type
Что такое тип отметки времени и как ее использовать?
2 ответа
-T
опция используется, чтобы попросить прыжки вставить метку времени в IP-пакеты при получении пинга. Это работает с помощью TS
опция IP-пакетов, указанная в RFC791.
ping -T
требует аргумента: один из tsonly
, tsandaddr
или же tsprespec
, Вы можете прочитать справочную страницу онлайн или запустив man ping
для получения дополнительной информации об использовании.
Вот пример использования:
$ ping -T tsandaddr 192.168.1.1
PING 192.168.1.1 (192.168.1.1) 56(124) bytes of data.
64 bytes from 192.168.1.1: icmp_seq=1 ttl=64 time=3.22 ms
TS: 192.168.1.3 63668917 absolute
192.168.1.1 534841740 absolute not-standard
192.168.1.1 1 not-standard
192.168.1.3 3
64 bytes from 192.168.1.1: icmp_seq=2 ttl=64 time=6.59 ms
TS: 192.168.1.3 63669919 absolute
192.168.1.1 534842745 absolute not-standard
192.168.1.1 0 not-standard
192.168.1.3 6
64 bytes from 192.168.1.1: icmp_seq=3 ttl=64 time=3.20 ms
TS: 192.168.1.3 63670920 absolute
192.168.1.1 534843743 absolute not-standard
192.168.1.1 1 not-standard
192.168.1.3 3
^C
--- 192.168.1.1 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2002ms
rtt min/avg/max/mdev = 3.207/4.343/6.599/1.595 ms
Обратите внимание, что я пробовал в моей локальной сети. Некоторые переходы в Интернете могут отклонять IP-пакеты с параметром отметки времени. (На самом деле, я не могу пропинговать ни одного интернет-хоста с -T
, вероятно, мой провайдер отклоняет мои пакеты.)
В качестве альтернативы, если вы хотите регистрировать время безотказной работы ссылки или хоста, вам, вероятно, нужен однострочный ответ с отметкой времени, например:
ping -i 10 google.com | while read pong; do echo "$(date): $pong"; done
Это будет отправлять пинг каждые десять секунд с
-i 10
затем передайте это в файл, например, добавьте
> /tmp/ping_google.log
. Вывод как:
Sat Jan 22 07:34:08 AEDT 2022: PING google.com (172.217.6.78) 56(84) bytes of data.
Sat Jan 22 07:34:08 AEDT 2022: 64 bytes from sfo07s17-in-f78.1e100.net (172.217.6.78): icmp_seq=1 ttl=118 time=2.27 ms
Sat Jan 22 07:34:18 AEDT 2022: 64 bytes from sfo07s17-in-f78.1e100.net (172.217.6.78): icmp_seq=2 ttl=118 time=1.32 ms
Sat Jan 22 07:34:28 AEDT 2022: 64 bytes from sfo07s17-in-f78.1e100.net (172.217.6.78): icmp_seq=3 ttl=118 time=1.34 ms
...
Надеюсь, это поможет кому-то.