Dim*_*ims 33 linux command-line ntp
如何从 Linux 中的命令行知道 Internet 上的当前时间?
例如,与ntpq程序?
注意:不是来自计算机或操作系统时钟,而是来自互联网?
注意:我不想更改或同步时间。只是知道它。
Mar*_*rco 36
如果您使用 bash 以下行将完成这项工作
$ cat </dev/tcp/time.nist.gov/13
56525 13-08-21 23:07:09 50 0 0 55.6 UTC(NIST) *
Run Code Online (Sandbox Code Playgroud)
它利用了 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) *
Run Code Online (Sandbox Code Playgroud)
这两个命令都在美国国家标准与技术研究院的TCP 端口 13 上查询计时器服务器,并将接收到的数据输出到 stdout。
¹编辑:来自Bash 手册页: Bash 在重定向中特别处理多个文件名,如下表所述:
/dev/tcp/host/port
如果 host 是有效的主机名或 Internet 地址,并且 port 是整数端口号或服务名称,则 bash 会尝试打开到相应套接字的 TCP 连接。
/dev/udp/host/port
如果 host 是有效的主机名或 Internet 地址,并且 port 是整数端口号或服务名称,则 bash 会尝试打开到相应套接字的 UDP 连接。
jus*_*ing 23
每个发行版都有几个NTP 服务可用。
如果您想做一次时钟同步:
date -s "$(curl -s --head http://google.com | grep ^Date: | sed 's/Date: //g')"
Run Code Online (Sandbox Code Playgroud)
将系统时间设置为硬件实时时钟
hwclock -r --utc
hwclock -w --utc
hwclock -r --utc
Run Code Online (Sandbox Code Playgroud)
(注意:这恰好适用于 Google,因为他们到处都有服务器)
如果您只想查看 Google 最近的服务器发送的时间:
date -d "$(curl -s --head http://google.com | grep ^Date: | sed 's/Date: //g')"
Run Code Online (Sandbox Code Playgroud)
ter*_*don 21
该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
Run Code Online (Sandbox Code Playgroud)
来自man ntpdate:
-q Query only - don't set the clock.
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
54466 次 |
| 最近记录: |