linux服务器时间同步时间服务器同步


linux服务器时间同步时间服务器同步

在Windwos中,系统时间的设置很简单,界面操作,通俗易懂,而且设置后,重启,关机都没关系。系统时间会自动保存在BIOS时钟里面,启动计算机的时候,系统会自动在BIOS里面取硬件时间,以保证时间的不间断。但在Linux下,默认情况下,系统时间和硬件时间并不会自动同步。在Linux运行过程中,系统时间和硬件时间以异步的方式运行,互不干扰。硬件时间的运行,是靠BIOS电池来维持,而系统时间,是用CPUTick来维持的。在系统开机的时候,会自动从BIOS中取得硬件时间,设置为系统时间。

硬件时间的设置,可以用hwclock或者clock命令。两者基本相同,只用一个就行,只不过clock命令除了支持x86硬件体系外,还支持Alpha硬件体系。

为了避免主机时间因为长期运行下所导致的时间偏差,进行时间同步(synchronize)的工作是非常必要的。Linux系统下,一般使用ntp服务器来同步不同机器的时间。一台机器,可以同时是ntp服务端和ntp客户端。在生产系统中,推荐使用像DNS服务器一样分层的时间服务器来同步时间。

但这样的同步,只是强制性的将系统时间设置为ntp服务器时间。如果CPUTick有问题,只是治标不治本。所以,一般配合cron命令,来进行定期同步设置。比如,在crontab中添加:

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

要注意的是,ntpd有一个自我保护的机制:如果本机与上源时间相差太大,ntpd不会运行时间同步操作,所以新设置的时间服务器一定要先ntpdate从上源取得时间初值,然后启动ntpd服务。ntpd服务运行后,先是每64秒与上源NTP服务器同步一次,根据每次同步时测得的误差值经复杂计算逐步调整自己的时间,随着误差减小,逐步增加同步的间隔。每次跳动,都会重复这个调整的过程。



(1)/etc/ntp.conf:这个是NTPdaemon的主要设文件,也是NTP唯一的设定文件。



(2)/usr/share/zoneinfo/:在这个目录下的文件其实是规定了各主要时区的时间设定文件,例如北京地区的时区设定文件在/usr/share/zoneinfo/Asia/Shanghai就是了。这个目录里面的文件与底下要谈的两个文件(clock与localtime)是有关系的。



(3)/etc/sysconfig/clock:这个文件其实也不包含在NTP的daemon当中,因为这个是Linux的主要时区设定文件。每次开机后,Linux会自动的读取这个文件来设定自己系统所默认要显示的时间。



(4)/etc/localtime:这个文件就是"本地端的时间配置文件"。刚刚那个clock文件里面规定了使用的时间设置文件(ZONE)为/usr/share/zoneinfo/Asia/Shanghai,所以说,这就是本地端的时间了,此时,Linux系统就会将Shanghai那个文件另存为一份/etc/localtime文件,所以未来我们的时间显示就会以Beijing那个时间设定文件为准。

下面重点介绍/etc/ntp.conf文件的设置。在NTPServer的设定上,建议不要对无限制的开放,尽量仅提供局域网内部的Client端联机进行网络校时。此外,NTPServer总也是需要网络上面较为准确的主机来自行更新自己的时间啊,所以在我们的NTPServer上面也要找一部最靠近自己的TimeServer来进行自我校正。事实上,NTP这个服务也是Server/Client的一种模式。

总结一下,restrict用来设置访问权限,server用来设置上层时间服务器,driftfile用来设置保存漂移时间的文件。

在启动NTP服务前,先对提供服务的这台主机手动的校正一次时间(因为启动服务器,端口会被服务端占用,就不能手动同步时间了)。

其实,这不是一个错误。而是由于每次重启NTP服务器之后大约要3-5分钟客户端才能与server建立正常的通讯连接。当此时用客户端连接服务端就会报这样的信息。一般等待几分钟就可以了。

指令"ntpq-p"可以列出目前我们的NTP与相关的上层NTP的状态,以上的几个字段的意义如下:

remote:即NTP主机的IP或主机名称。注意最左边的符号,如果由" "则代表目前正在作用钟的上层NTP,如果是"*"则表示也有连上线,不过是作为次要联机的NTP主机。

最后提及一点,ntp服务默认只会同步系统时间。如果想要让ntp同时同步硬件时间,可以设置/etc/sysconfig/ntpd文件。

在/etc/sysconfig/ntpd文件中,添加SYNC_HWCLOCK=yes这样,就可以让硬件时间与系统时间一起同步。



(1)管理节点1作为主NTP服务器,跟互联网NTP服务器进行时间同步;管理节点2作为备用NTP服务器,也跟互联网NTP服务器进行时间同步。两个管理节点做Heartbeat,设置一个漂移IP地址192.168.0.103,并对ntpd服务进行双机高可用;



(2)集群计算节点和IO节点,跟管理节点的虚拟IP地址192.168.0.103通过ntpd服务做时间同步;



(4)所有计算节点和IO节点开机时,通过ntpdate跟192.168.0.103进行时间同步,然后再开启ntpd服务。

render_template可以往模板传递json对象数据吗?谢谢。传递后在js中可以获取到不?谢谢