Linux时间同步ntpd和ntpdate的用法
自从昨晚机器迁移,发现有好几台机器的时间并没有同步到当前时间,都延迟了5个多小时,那么此时就需要ntpdate或者nptd来同步时间
使用ntpd来同步时间
通常如果机器上的服务都已经运行一段时间并且需要同步时间的推荐使用ntpd来同步,因为ntpdate同步时间的时候会造成时间的跳跃,对一些依赖时间的程序和服务会造成影响。比如sleep,timer等。而且,ntpd服务可以在修正时间的同时,修正cpu tick。理想的做法为,在开机的时候,使用ntpdate强制同步时间,在其他时候使用ntpd服务来同步时间。
关于ntpd的配置如下:
/etc/ntp.conf:这个是NTP daemon的主要设文件,也是 NTP 唯一的设定文件。
/usr /share/zoneinfo/:在这个目录下的文件其实是规定了各主要时区的时间设定文件,例如北京地区的时区设定文件在 /usr/share/zoneinfo/Asia/Beijing 就是了。这个目录里面的文件与底下要谈的两个文件(clock 与localtime)是有关系的。
/etc/sysconfig/clock:这个文件其实也不包含在NTP 的 daemon 当中,因为这个是 linux 的主要时区设定文件。每次开机后,Linux 会自动的读取这个文件来设定自己系统所默认要显示的时间。
/etc /localtime:这个文件就是“本地端的时间配置文件”。刚刚那个clock 文件里面规定了使用的时间设置文件(ZONE) 为 /usr/share/zoneinfo/Asia/Beijing ,所以说,这就是本地端的时间了,此时, Linux系统就会将Beijing那个文件另存为一份 /etc/localtime文件,所以未来我们的时间显示就会以Beijing那个时间设定文件为准。
/etc/timezone:系统时区文件
下面重点说说 /etc/ntp.conf文件的设置。在 NTP Server 的设定上面,其实最好不要对 Internet 无限制的开放,尽量仅提供您自己内部的 Client 端联机进行网络校时就好。此外, NTP Server 总也是需要网络上面较为准确的主机来自行更新自己的时间啊,所以在我们的 NTP Server 上面也要找一部最靠近自己的 Time Server 来进行自我校正。事实上, NTP 这个服务也是 Server/Client 的一种模式。
1 | vim /etc/ntp.conf |
使用ntpdate同步时间
用法:
1 | ntpdate [-nv] [NTP IP/hostname] |
例如:
1 | ntpdate 172.21.68.2 |
但这样的同步,只是强制性的将系统时间设置为ntp服务器时间。如果cpu tick有问题,只是治标不治本。所以,一般配合cron命令,来进行定期同步设置。比如,在crontab中添加:
1 | crontab -e # 编辑crontab |
系统时间与硬件时间互相同步
把系统时间同步给硬件时间
1 | clock --systohc (system clock to hardware clock) |
把系统时间同步给硬件时间
1 | clock --hctosys (hardware clock to system clock ) |