Как использовать опцию отметки времени в 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
...

Надеюсь, это поможет кому-то.

Другие вопросы по тегам