Linux系统时间和RTC时间、时钟设置与同步、ntpd服务/ntpdate


Linux有两个时间,一个是系统时间,一个是RTC时间(也叫硬件时间)。
Linux系统启动时,会自动获取硬件时间,设置为系统时间。


一、查询系统时间:

  • 查询系统时间:date
  • 查询/设置硬件时间:
hwclock –r显示硬件时钟与日期
hwclock –s将系统时钟调整为与目前的硬件时钟一致。
hwclock –w将硬件时钟调整为与目前的系统时钟一致

------------------------------------------------------------------------------------------------------------------


【Linux系统时间和RTC时间、时钟设置与同步、ntpd服务/ntpdate】二、同步时间
可以使用ntpdate命令,也可以使用ntpd服务。


  • ntpdate:
使用ntpdate比较简单。格式如下:
[root@linux ~]#ntpdate 192.168.0.2
[root@linux ~]#ntpdate time.ntp.org

但这样的同步,只是强制性的将系统时间设置为ntp服务器时间。如果cpu tick有问题,只是治标不治本。所以,一般配合cron命令,来进行定期同步设置。比如,在crontab中添加:
0 12 * * * * /usr/sbin/ntpdate192.168.0.1
这样,会在每天的12点整,同步一次时间。ntp服务器为192.168.0.1。


  • ntpd服务
使用ntpd服务,要好于ntpdate加cron的组合。因为,ntpdate同步时间,会造成时间的跳跃,对一些依赖时间的程序和服务会造成影响。比如sleep,timer等。而且,ntpd服务可以在修正时间的同时,修正cpu tick。理想的做法为,在开机的时候,使用ntpdate强制同步时间,在其他时候使用ntpd服务来同步时间。

三、NTP客户端同步间隔
NTP服务会间隔多长时间想时钟服务器请求一次时钟同步呢?默认最小时间间隔为64s,默认最大时间间隔是1024s(17分钟左右)。64s是比较合理的,默认间隔也是可调的

四、ntpd容忍误差范围
要注意的是,ntpd有一个自我保护设置: 如果本机与上源时间相差太大(>1000s), NTP服务就会认为是人为调整了时钟或出现了硬件故障,例如CMOS电池损坏等。此时,NTP服务就会退出,需要人工(ntpdate …)进行时钟同步。所以新设置的时间服务器一定要先ntpdate从上源取得时间初值, 然后启动ntpd服务。ntpd服务运行后, 先是每64秒与上源服务器同步一次, 根据每次同步时测得的误差值经复杂计算逐步调整自己的时间, 随着误差减小, 逐步增加同步的间隔. 每次跳动, 都会重复这个调整的过程.


    推荐阅读