Chinaunix首页 | 论坛 | 博客
  • 博客访问: 463131
  • 博文数量: 279
  • 博客积分: 4467
  • 博客等级: 上校
  • 技术积分: 2830
  • 用 户 组: 普通用户
  • 注册时间: 2007-04-03 14:43
文章分类

全部博文(279)

文章存档

2013年(1)

2012年(39)

2011年(35)

2009年(29)

2008年(131)

2007年(44)

分类:

2008-06-27 15:43:43

ntpdate 命令

用途

使用网络计时协议(NTP)设置日期和时间。此命令仅应用于 AIX 4.2 或后期版本。

语法

ntpdate [  ] [  ] [  ] [  ] [  ] [  ] [  ] [  ] [  ] [  ]

描述

通过轮询指定的确定正确时间的 NTP 服务器, ntpdate 命令设置本地日期和时间。它从指定的每个服务器获得了一些样本,并应用标准 NTP 时钟过滤器和选择算法来选择最好的样本。

ntpdate 命令使用以下方法进行时间调整:

  • 如果它确定时钟偏差超过 0.5 秒,它通过调用 settimeofday 子例程设置时钟时间。在引导时间,这是一个首选的方法。
  • 如果它确定时钟偏差小于 0.5 秒,它通过调用 adjtime 子例程和偏移量来调整时钟时间。此方法倾向于用牺牲一些稳定性来保持漂移时钟更加准确。 当不是通过运行一个守护程序而是从 cron 命令有规则的运行 ntpdate 命令时,每一小时或两小时执行一次可以保证足够的走时精度,从而避免调整时钟。
    注意事项:
    1. 使用很多服务器可以大幅度改善 ntpdate 命令的可靠性与精度。尽管能使用单一服务器,但您能通过提供至少三个或四个服务器以获得更好的性能。
    2. 如果一个类似 xntpd 守护程序的 NTP 服务器守护程序正在同一主机上运行,命令将拒绝 ntpdate 设置日期。
    3. 你必须有 root 权限才能在主机上运行这个命令。

标志

-a Keyid 使用 Keyid 来认证全部数据包。
-b 通过调用 settimeofday 子例程来增加时钟的时间。
-d 指定调试方式。判断 ntpdate 命令会产生什么结果(不产生实际的结果)。结果再现在屏幕上。这个标志使用无特权的端口。
-e AuthenticationDelay 指定延迟认证处理的时间秒数。
-k KeyFile 当不使用缺省值 /etc/ntp.keys 文件时,为包含密钥的文件指定一个不同的名称。 请参阅文件KeyFile的描述。
-o Version 当轮询它的发出数据包时,指定使用的 NTP 版本实现。 Version 的值可以是 1,2,3。缺省值是 3。
-p Samples 指定从每个服务器获取的样本的数目。 Samples 的值在 1 和 8 之间,并包括 1 和 8。它的缺省值是 4。
-s 指定日志操作 syslog 设施的使用,而不是使用标准输出。 当运行 ntpdate 命令和 cron 命令时,它是很有用的。
-t TimeOut 指定等待响应的时间。给定 TimeOut 的值四舍五入为 0.2 秒的倍数。缺省值是 1 秒。
-u 指定使用无特权的端口发送数据包。 当在一个对特权端口的输入流量进行阻拦的防火墙后是很有益的, 并希望在防火墙之外和主机同步。防火墙是一个系统或者计算机,它控制从外网对专用网的访问。

参数

Server ... 指定轮询的服务器。

退出状态

此命令返回下列出口值:

0 成功完成。
>0 发生错误。

安全性

访问控制:您必须有 root 权限才能运行此命令。

审计事件:N/A

示例

通过在地址 9.3.149.107 轮询 NTP 服务器设置本地日期和时间,输入:

/usr/sbin/ntpdate 9.3.149.107

输出类似于下列出现的情况:

28 Feb 12:09:13 ntpdate [18450]: 加快时间服务器 9.3.149.107
偏移量 38.417792 秒

文件

/usr/sbin/ntpdate 包含 ntpdate 命令。
/etc/ntp.keys 包含缺省的密钥文件。

相关信息

命令:, ,

守护程序:,

ntpdate程序正是为这个目的设计,而且它很简单易用。它使用一种协议查询一个或多个时间服务器,然后为你的机器设置正确的系统时间。

  首先你应该确定使用哪一个时间服务器。虽然你可以设置自己的某一台机器作为时间服务器,然后用这台机器同步其他机器的时钟,但我不推荐这么做。这种做法要求你自己完成额外的管理工作,而且你必须保证时间服务器的时钟精确。

  我更喜欢以那些正式的时间服务器为参考,然后同步所有自己的机器。你可以从找到这些时间服务器的一个清单。

  ntpdate命令的语法很简单,但必须用root身份运行它。你可以在命令行中指定一个或者多个时间服务器,下面我要使用的是USNO清单中的前面三个。这样,ntpdate将能够选择一个最好的时间服务器进行同步。

  # ntpdate ntp2.usno.navy.mil tock.usno.navy.mil tick.usno.navy.mil

  14 Nov 17:19:04 ntpdate[16015]: adjust time server 192.5.41.40 offset -0.017641 sec

  为了保证时钟精确,我们可以把ntpdate命令放入crontab。但是,对于那些不是一直开启的机器(比如便携机),这个命令放入启动脚本或手工运行更合适。

  必须指出的是,ntpdate设置的是系统时钟,但它不设置硬件时钟(电池供电的时钟)。要让硬件时钟反应系统时钟的值,请使用如下命令:

  # hwclock -systohc

  如果ntpdate还没有安装到系统上,它应该可以从Linux安装盘安装。
阅读(778) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~