- NTP 123 UDP port by default
- в NTP есть возможность broadcasting/multicasting time информации для клиентов пассивно ожидающих обновления времени после первоначального round trip calibrating exchange
- NTP – грубо millisecond accuracy (по факту в lan может быть меньше)
- PTP (IEEE 1588) – грубо microsecond accuracy (по факту может быть меньше)
(дублируется в видео-аудио и PTP 1588) Dante аудио синхросигналы по времени (ptp 1588) передаются мультикастом, поэтому мультикаст должен проходить (возможны проблемы с настройками igmp, прошивками, ACL, у каких то вендоров есть необходимость отключения *stp и проч), при этом передается немного – всего 4 пакета в секунду. Есть коммутаторы, которые генерируют Clock сигнал, но это достаточно нишевая история (объемы продаж глобально = тысячи).
How does Dante clocking work? Dante devices each contain a very high quality VCXO clock, and are synchronized with one another over the network using the IEEE 1588 Precision Time Protocol (PTP). One device is elected as the Leader Clock to which other devices are synchronized. By default this selection takes place automatically, with no need to manually assign a Leader Clock.
NTP Servers Network Time Protocol, or NTP, is one of the oldest Internet protocols still in use today. An NTP server is directly connected to a highly accurate timekeeping source, like the GPS satellite network that orbits the Earth. The server receives time information from the GPS satellites, uses algorithms to process the information, and then broadcasts it to all devices on the network that are requesting time information. NTP servers like our TM1000A can synchronize clocks and other local network devices with nearly millisecond accuracy, which suits most business and industrial needs for time serving accuracy. However, if greater than millisecond synchronization accuracy is required, a PTP server might be the best bet.
PTP Servers Precision Time Protocol, or PTP, was originally defined and standardized by the IEEE in 2002. As with NTP, PTP may also utilize the GPS satellite network as its highly accurate time source, and also uses algorithms to process the time information it receives. However, PTP time servers have additional processors and use both hardware and software to broadcast the time and network status information to its clients on the network. With the addition of network latency information and hardware timestamping, PTP devices can achieve microsecond accuracy or better. If you need the highest possible degree of accuracy in your network time server, a PTP device like our TM2000Awill likely work best for you.
- https://www.calculator.net/ – удобный сайт для расчета времени между двумя датами в разном виде (дней/часов/минут/секунд).
https://www.calculator.net/time-calculator.html?tcday1=&tchour1=&tcminute1=51&tcsecond1=42&Op=-&tcday2=&tchour2=&tcminute2=37&tcsecond2=55&tcday3=&tchour3=&tcminute3=&tcsecond3=&ctype=1&x=80&y=29
Public NTP
pool.ntp.org # глобальный кластер ntp серверов, в общем случае при каждом запросе выдает новый адрес
time.windows.com # ntp microsoft, по факту находится в домене akamai CDN за time.microsoft.akadns.net
ntp.ix.ru # ntp MSK-IX
ntp.corbina.net # ntp corbina
~# ntpdate pool.ntp.org 30 Jan 15:52:50 ntpdate[15930]: adjust time server 95.216.136.148 offset 0.000537 sec ~# ntpdate pool.ntp.org 30 Jan 15:53:00 ntpdate[15931]: adjust time server 51.15.20.83 offset 0.003906 sec ~# ntpdate pool.ntp.org 30 Jan 15:53:09 ntpdate[15952]: adjust time server 195.91.239.8 offset -0.001487 sec ~# ntpdate pool.ntp.org 30 Jan 15:53:17 ntpdate[15956]: adjust time server 78.36.18.184 offset -0.007344 sec
STRATUM
stratum 0 examples: atomic clock, gps, cdma/gsm, radio waves
Причем atomic clock бывают размером с мелкий чип (Miniature Atomic Clock). Price порядка 2k $.
https://www.sparkfun.com/products/14830 A low-cost GPS receiver can get you accurate timing at ±10,000ps. The Miniature Atomic Clock SA.35m is four orders of magnitude more accurate at ±8ps. And considering atomic clocks used to be the size of a small car, the MAC is incredibly small at 51x51mm (2" square). Applications: - GPS Anti-Jamming and Jamming detection - Cellular Base Station - Precision frequency reference - Aquatic mapping
show
date – показывает дату и время. Вывод для удобства можно редактировать. Делал так для скрипта, который кладет логи в папку, чтобы можно было опрашивать просто по нужной дате и сортировать тупо-по имени без даты.
[root@host1 ~]# date Tue Aug 2 12:31:11 MSK 2016 [root@host1 ~]# date "+%Y-%m-%d" 2016-08-02
Работа с датой:
date -u - UTC time (без timezone) date +%s - Unix date/time date +"%Y-%m-%d %T.%N" - дата с наносекундами/nanoseconds date +"%T.%N" - время с наносекундами/nanoseconds (9 знаков после секунд) date +"%T.%6N" - время с микросекундами/microseconds (6 знаков) date +"%T.%3N" - время с миллисекундами/milliseconds (3 знака) date --date "-3 day" - дата 3 дня от текущей date --date="255 days ago" - дата 255 дней от текущей date -d "24 Oct 2017" "+%s" - получаем дату в секундах с 1970 года (epoch date). Дату можно вставить в разных форматах - 24 Oct 2017, 2017-10-24, 20171024. Далее можно оперировать этой датой в скриптах.
Добавление/вычитание секунд ко времени в bash.
date '+%T' --date="16:16:16 MSK - 17 seconds" 16:15:59
timedatectl – в отличии от date, timedatectl показывает timezones. Можно посмотреть все таймзоны timedatectl list-timezones.
[user1@host1 ~]$ timedatectl Local time: Чт 2016-07-28 10:45:31 MSK Universal time: Чт 2016-07-28 07:45:31 UTC RTC time: Чт 2016-07-28 07:45:31 Time zone: Europe/Moscow (MSK, +0300) NTP enabled: yes NTP synchronized: yes RTC in local TZ: no DST active: n/a [root@host1 ~]# timedatectl list-timezones | grep Moscow Europe/Moscow
change
sudo date |date-time| – устанавливаем вручную дату и время.
[root@host1 ~]# sudo date 07131821 Wed Jul 13 18:21:00 MSK 2016 [root@host1 ~]# date Wed Jul 13 18:21:01 MSK 2016
sudo date -s |STRING| – устанавливаем вручную дату/время в произвольном формате.
The --date=STRING is a mostly free format human readable date string such as "Sun, 29 Feb 2004 16:21:42 -0800" or "2004-02-29 16:21:42" or even "next Thursday". A date string may contain items indicating calendar date, time of day, time zone, day of week, relative time, relative date, and numbers. An empty string indicates the beginning of the day. The date string format is more complex than is easily documented here but is fully described in the info documentation. [root@host1 ~]# date -s 20:02 Wed Aug 17 20:02:00 MSK 2016
timedatectl set-time 2015-08-12 – меняем текущую дату на August 12, 2015
[root@host1 ~]# timedatectl set-time 2015-08-12 [root@host1 ~]# date Ср. авг. 12 00:00:01 MSK 2015
timedatectl set-time 11:00 – Меняем время на 11:00
[root@host1 ~]# timedatectl set-time 11:00 [root@host1 ~]# date Ср. авг. 12 11:00:00 MSK 2015
UNIX TIME
date +”%T.%3N” -d @1559287471 Конвертация из unix time.
Timezone
timedatectl set-timezone Europe/Moscow – меняем таймзону на Europe/Moscow
NTP
sntp -S |server-ip/fqdn| – синхронизируем время с NTP сервером разово. NTP может работать плохо в условиях нагруженной сети или серверов.
# sntp -S pool.ntp.org sntp 4.2.8p12@1.3728-o (1) 2021-02-14 14:39:56.228308 (-0300) -0.008129 +/- 0.006040 pool.ntp.org 37.228.129.2 s2 no-leap
ntpdate |server-ip/fqdn| – deprecated in favour of sntp. Четвертая версия NTP позволяет синхронизировать время с точностью до 10 мс (миллисекунд). Четвертая версия – версия по умолчанию при работе с ntpdate.
# apt show ntpdate ntpdate is deprecated. Please use sntp instead for manual or scripted NTP queries/syncs. # ntpdate pool.ntp.org # date Wed Jul 13 18:23:08 MSK 2016 # ntpdate ntp.corbina.net 2 Aug 12:48:28 ntpdate[29563]: step time server 195.14.40.141 offset 1707901.165532 sec # date Tue Aug 2 12:48:30 MSK 2016 -o version Specify the NTP version for outgoing packets as the integer version, which can be 1, 2, 3 or 4. The default is 4. This allows ntpdate to be used with older NTP versions.
timedatectl set-ntp yes/no – включаем/отключаем постоянную синхронизацию с NTP.
[root@host1 ~]# timedatectl set-time 2017-01-13 Failed to set time: Automatic time synchronization is enabled [root@host1 ~]# timedatectl set-ntp no [root@host1 ~]# timedatectl set-time 2017-01-13 [root@host1 ~]# date Fri Jan 13 00:00:02 MSK 2017
SYNCETHERNET (SyncE)
Хорошее краткое summary.