Answers:
如果您使用bash,则以下行将完成此工作
$ cat </dev/tcp/time.nist.gov/13
56525 13-08-21 23:07:09 50 0 0 55.6 UTC(NIST) *
它利用了bash shell的内置网络功能¹。如果使用POSIX shell或任何其他shell,则可以使用例如netcat。
$ nc time.nist.gov 13
56525 13-08-21 23:07:09 50 0 0 55.6 UTC(NIST) *
这两个命令都查询国家标准技术研究所 TCP端口13上的计时器服务器,并在stdout上输出接收到的数据。
¹ 编辑:从Bash的手册页:猛砸专门处理多个文件名时,他们在重定向中使用,如下表所示:
/dev/tcp/host/port
如果host是有效的主机名或Internet地址,而port是整数端口号或
服务名,则bash尝试打开与相应套接字的TCP连接。
/dev/udp/host/port
如果host是有效的主机名或Internet地址,而port是整数端口号或
服务名,则bash尝试打开与相应套接字的UDP连接。
</dev/tcp/
格式是什么?
curl -G --data-urlencode "format=%D-%T\n" http://www.timeapi.org/cet/now?
每个发行版都有几种NTP服务可用。
如果您想做一次Clocksync:
date -s "$(curl -s --head http://google.com | grep ^Date: | sed 's/Date: //g')"
将系统时间设置为硬件实时时钟
hwclock -r --utc
hwclock -w --utc
hwclock -r --utc
(注意:这恰好与Google配合使用,因为他们已经遍地开花了)
如果您只想查看Google最近的服务器发送什么时间:
date -d "$(curl -s --head http://google.com | grep ^Date: | sed 's/Date: //g')"
该ntpdate
命令可以使用以下-q
标志执行此操作:
$ ntpdate -q 1.debian.pool.ntp.org
server 88.191.120.99, stratum 3, offset -0.015076, delay 0.06604
server 88.191.235.218, stratum 2, offset -0.000676, delay 0.06592
server 188.165.240.21, stratum 3, offset 0.001191, delay 0.07005
server 91.121.34.166, stratum 2, offset 0.000565, delay 0.06998
22 Aug 00:56:21 ntpdate[31373]: adjust time server 88.191.235.218 offset -0.000676 sec
来自man ntpdate
:
-q Query only - don't set the clock.