NTP 时间服务器配置《一》 硬件时间和系统时间

最近做了一个项目,部署到服务器上,但是服务器时间总是发生变化,于是花了一些时间研究了NTP时间服务器的使用。下来整理了一些学习心得,记录一下,免得遗忘。

NTP 时间服务器《一》 硬件时间和系统时间

在Linux系统中有硬件时钟和系统时钟两种时钟,默认情况下,它们并不会自动同步,并且以异步的方式运行,互不干扰。

 

硬件时钟是指主机板上的时钟设备,也就是通常可在BIOS画面设定的时钟。

系统时钟是指kernel中的时钟。所有Linux相关指令与函数都是读取系统时钟的设定。

 

因为存在两种不同的时钟,那么它们之间就会存在差异。当Linux启动时,系统时钟会去读取硬件时钟的设定,之后系统时钟即独立运作。

 

修改系统时间和硬件时间

(1)系统时间

查看:date

修改:date -s ‘2015-12-12 00:00:00’ 

(2)硬件时间

查看:hwclock -r或者hwclock --show

修改:hwclock --set --date ‘2015-12-12 00:00:00’

 

用date命令对系统时间进行设置后,并不会去修改硬件时钟,所以系统重启后,系统时间还算会去读取硬件时间,这就是为何date设置失效到原因。因此,需要在设置系统时间后,将系统时间同步到硬件时钟。

 

同步系统时间和硬件时间

(1)将硬件时间写入系统时间

命令:hwclock --hctosys或者hwclock -s

命令:clock --hctosys或者clock -s

 

(2)将系统时间写入硬件时间

命令:hwclock --systohc或者hwclock -w

命令:clock --systohc或者clock -w

 

如果观察系统启动/关闭时执行的初始化脚本”/etc/rc.d/rc.sysinit”,我们不难发现:

系统启动过程中,自动调用/sbin/hwclock --hctosys  将硬件时钟系统时间同步到操作系统时间.

系统关闭过程中,自动调用/sbin/hwclock --systohc  将操作系统时间同步到硬件时钟系统时间