当前位置:Linux教程 - Linux - 多台机器的系统时钟同步的解决方法

多台机器的系统时钟同步的解决方法

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

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

我更喜欢以那些正式的时间服务器为参考,然后同步所有自己的机器。你可以从http://tycho.usno.navy.mil/ntp.html找到这些时间服务器的一个清单。

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安装盘安装。有关ntpdate命令的更多说明,请参见这个命令的man文档。