NTPv4的ntpdate命令
用途
使用网络时间协议 (NTP) 设置日期和时间。
语法
ntpdate [ -46bBdqsuv ] [ -a key] [-e authdelay] [ -k keyfile] [ -o version] [ -p samples] [ -t timeout] server [...]
描述
ntpdate命令通过轮询作为服务器参数给定的 NTP 服务器来确定正确的时间,从而设置本地日期和时间。 ntpdate命令必须以本地主机 root 用户身份运行。 从每个指定服务器获取样本,并使用 NTP 时钟过滤和选择算法的子集来选择最佳样本。
注:"ntpdate命令的准确性和可靠性取决于服务器的数量、每次运行的轮询次数以及运行的间隔时间。
必要时可手动运行 "ntpdate命令设置主机时钟,或从主机启动脚本中运行该命令在启动时设置时钟。 这些函数对于在启动 "ntpd守护进程前设置时钟时间非常有用。 也可以通过 cron 脚本运行 ntpdate 命令。 不过,"ntpdate命令和设计好的 "cron脚本并不能替代 "ntpd守护进程,后者使用复杂的算法来最大限度地提高准确性和可靠性,同时最大限度地减少资源使用。 由于 "ntpdate命令不会像 "ntpd守护进程那样调整主机时钟频率,因此精确度有限。
时间调整通过 "ntpdate命令以下列方式进行:
- 如果 "ntpdate命令确定时钟误差超过0.5秒,它就会通过调用系统 "settimeofday子程序来计时。
- 如果误差小于0.5秒,则通过调用系统 "adjtime子程序来回转时间。
cron 脚本中运行 ntpdate 命令时效果也很好。如果 "ntpdate命令未指定 "-u标志,当 "ntpd守护进程也在同一主机上运行时,"ntpdate命令将拒绝设置日期。 如果不使用守护进程,而是通过 cron 脚本定期运行 ntpdate 命令,那么每隔一两个小时运行一次就能保证时间足够精确,从而避免时钟走时。
如果 "NetInfo支持被编译到 "ntpdate命令中,并且 "ntpdate命令在 "NetInfo配置中为 "ntpd确定了时间服务器,那么服务器参数就是可选的。
标志
| 项 | 描述 |
|---|---|
| -4 | 强制 DNS 将主机名解析到 IP 版本 4IPv4) 名称空间。 |
| -6 | 强制 DNS 将主机名解析到 IP 版本 6IPv6) 名称空间。 |
| -a 键 | 启用身份验证功能,并指定用于身份验证的密钥标识符作为参数 "key。 密钥和密钥标识在客户机密钥文件和服务器密钥文件中都必须匹配。 缺省情况是,禁用认证功能。 |
| -B | 使用 "adjtime子程序强制回转时间,无论测量偏移是否超过 + 或 - 500 毫秒。 默认情况下,如果偏移大于 + 或 -500毫秒,则使用 "settimeofday子程序设置时间。 注意:如果偏移量大于 + 或 - 500 毫秒,那么将时钟回转到正确值需要很长时间(数小时)。 在此过程中,切勿使用主机同步客户端。
|
| -b | 使用 "settimeofday子程序系统调用强制时间步进,而不是使用 "adjtime子程序系统调用强制时间回转(默认值)。 该选项用于在启动时从启动文件调用。 |
| -d | 启用调试模式,在该模式下,"ntpdate命令使用非特权端口执行所有步骤,但不调整本地时钟。 它还会打印对一般调试有用的信息。 |
| -e 自动延迟 | 指定执行身份验证功能的处理延迟。 处理延迟时间由authdelay变量指定,单位为秒或分数。 更多信息,请参阅 "ntpd守护进程。 这个数字很小,在大多数情况下可以忽略不计,但指定它可以增强较慢 CPU 的计时能力。 |
| -k KeyFile | 以keyfile变量指定的字符串形式指定身份验证密钥文件的路径。 缺省值为 /etc/ntp.keys。 该文件需要采用 "ntpd恶魔中描述的格式。 |
| -o 版本 | 用版本变量指定的整数来指定传出数据包的 NTP 版本。 版本变量的有效值为 1、2、3 或 4。 缺省值为 4。 通过该选项,"ntpdate命令可用于旧版本的 NTP。 |
| -p 样本 | 以samples变量指定的整数形式,指定从每个服务器获取的样本数。 缺省值为 4。 |
| -q | 指定查询。 -q选项不设置时钟。 |
| -s | 将日志输出从标准输出(默认)转到系统 "SYSLOG设备。 它主要是为方便 "cron脚本而设计的。 |
| -t timeout | 指定服务器响应的最长等待时间。 最长等待时间由超时变量指定,单位为秒或分数。 此值将四舍五入为 0.2 秒的倍数。 默认值为 2 秒,适合在局域网内进行轮询。 |
| -u | 指示 "ntpdate命令使用非特权端口发送数据包。 如果防火墙阻止了特权端口的传入流量,并且需要与防火墙外的主机同步,则此选项非常有用。 注意:"-d选项始终使用非特权端口。
|
| -v | 详细输出。 该选项将记录 "ntpdate命令的版本标识字符串。 |
参数
| 项 | 描述 |
|---|---|
| 服务器... | 指定要轮询的服务器。 |
退出状态
ntpdate命令返回以下退出值:
| 项 | 描述 |
|---|---|
0 |
成功完成。 |
nonzero |
发生错误。 |
安全性
- 访问控制
- 必须具有 root 用户权限才能运行此命令。
- 审计活动
- 不适用
示例
- 要通过轮询地址为9.41.254.24 的 NTP 服务器来设置本地日期和时间,请输入以下命令:
将显示类似以下的输出结果:ntpdate 9.41.254.24address: :: address: 0.0.0.0 25 Feb 12:19:41 ntpdate[434262]: adjust time server 9.41.254.24 offset -0.005270 sec
文件
- /usr/sbin/ntp4/ntpdate4
- 包含 NTP 版本 4NTPv4) 的 "ntpdate命令。
- /usr/sbin/ntpdate-->/usr/sbin/ntp4/ntpdate4
/usr/sbin目录中 NTP 第 4 版二进制文件的默认符号链接。- /etc/ntp.keys
- ntpdate命令使用的加密密钥。