需求说明

本文以Centos 6.5为例介绍如何修改Linux实例时区,以及开启和配置Linux NTP服务,保证实例本地时间精确同步。

前提条件

NTP服务的通信端口为UDP 123,设置NTP服务之前请确保您已经打开UDP 123端口。您可以通过netstat -nupl命令查看实例是否开通UDP 123端口。如何放行UDP 123端口,请参见添加安全组规则。

背景信息

目前,所有地域下ECS实例默认采用CST(China Standard Time)时区,您也可以根据自己的业务需求为ECS实例设置或者修改时区。

NTP 服务能保证 ECS 实例的本地时间与标准时间同步。在Linux系统中,您可以通过ntpdate和ntpd两种命令方式实现NTP时间同步。此处提供标准NTP服务配置和自定义NTP服务配置,您可以根据需要选择性地配置。

ntpdate为断点更新。对新购实例,您可以使用ntpdate同步时间。
ntpd为步进式地逐渐调整时间。对已经承载有运行中业务的实例,建议您使用ntpd同步时间。

修改Linux实例时区

远程连接 Linux 实例。
您需要以root身份打开并编辑时区配置文件,所以此处使用sudo命令。

sudo rm /etc/localtime   #删除系统里的当地时间链接。
sudo vi /etc/sysconfig/clock  #用vim打开并编辑配置文件/etc/sysconfig/clock,输入i添加时区城市。例如添加Zone=Asia/Shanghai,按下Esc键退出编辑并输入:wq保存并退出。

查询时区列表,Shanghai为列表条目之一。

ls /usr/share/zoneinfo

更新时区修改内容。
sudo ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
更新硬件时钟(RTC)

hwclock -w。

重启实例后生效

sudo reboot

开机后操作,查看时区信息是否生效,未生效可按照上述步骤重新操作一遍。

date -R

启用NTP服务

sudo service ntpd start  
chkconfig ntpd on   #随机启动

查看是否启用了NTP服务。

ntpstat

ntpq -p #查看NTP服务对等端的列表信息;
sudo chkconfig --list ntpd #可查看NTP服务的运行级别。

配置自定义NTP服务

sudo vi /etc/ntp.conf 用vim打开并编辑NTP服务配置文件。
找到server ntp 服务器 iburst的信息后,输入i开始编辑文件,给您暂时不需要的NTP服务器句首加上#隐藏起来。
新添加一行NTP服务器信息,格式为:server 您需要添加的NTP服务器 iburst。完成编辑后按下Esc键并输入:wq保存退出。

启用自定义的NTP服务

sudo service ntpd start
执行命令chkconfig ntpd on启用NTP服务。
执行命令ntpstat查看是否启用了NTP服务。