我在 Amazon AWS(欧盟/爱尔兰)上有三个 Ubuntu EC2 实例,全部设置为 Web 服务器。我注意到系统日期/时间不正确其中两个(我选择的时区始终设置为 UTC)。以下是date -R
我的 PC(欧盟/意大利,比 UTC 早 2 小时)和服务器的输出:
lorenzo@LOCALPC ~ $ date -R
Wed, 05 Jun 2013 09:48:19 +0200
ubuntu@AWS-EC2-1 ~ $ date -R # SHOULD BE 07:48 (-10 minutes)
Wed, 05 Jun 2013 07:38:58 +0000
ubuntu@AWS-EC2-2 ~ $ date -R # SHOULD BE 07:48 (-15 minutes)
Wed, 05 Jun 2013 07:33:55 +0000
ubuntu@AWS-EC2-3 ~ $ date -R # SHOULD BE 07:48 (-50 secs)
Wed, 05 Jun 2013 07:47:29 +0000
如您所见,第一台和第二台 EC2 服务器的差异很大。我尝试使用ntpdate
,但是:
ubuntu@AWS-EC2-1 ~ $ ntpdate
5 Jun 07:42:10 ntpdate[3583]: no servers can be used, exiting
ubuntu@AWS-EC2-1 ~ $ cat /etc/default/ntpdate
# The settings in this file are used by the program ntpdate-debian, but not
# by the upstream program ntpdate.
# Set to "yes" to take the server list from /etc/ntp.conf, from package ntp,
# so you only have to keep it in one place.
NTPDATE_USE_NTP_CONF=yes
# List of NTP servers to use (Separate multiple servers with spaces.)
# Not used if NTPDATE_USE_NTP_CONF is yes.
NTPSERVERS="ntp.ubuntu.com"
# Additional options to pass to ntpdate
NTPOPTIONS=""
读取我刚刚粘贴的配置文件中的第一个注释后,我尝试ntpdate-debian
:
ubuntu@AWS-EC2-1 ~ $ sudo ntpdate-debian
5 Jun 07:51:58 ntpdate[3619]: step time server 91.189.94.4 offset 561.511643 sec
~560sec 偏移量与我之前发现的 ~10min 相对应。执行该命令后,系统时间正常。系统没有自动执行该操作,这对我来说很奇怪。我应该使用 cron 来执行此操作吗?!我遗漏了什么吗?
答案1
EC2 实例应该从主机获取时间,但偶尔会出现问题。如果您正确配置 ntp,应该可以解决这个问题。
这里还有更多说明: http://support.rightscale.com/06-FAQs/FAQ_0025_-_我可以在my_RightScale_servers上使用网络时间协议(NTP)吗%3F
答案2
亚马逊提供Amazon 时间同步服务这消除了您遇到的时间漂移。每个 EC2 实例上要执行的总体步骤如下:
- 使用以下方式删除 NTP
sudo apt-get remove ntp
- 使用安装 Chrony
sudo apt install chrony
- 用于
sudo vim /etc/chrony/chrony.conf
编辑要包含的文件server 169.254.169.123 prefer iburst
- 使用以下方法重启 Chrony
sudo /etc/init.d/chrony restart
- 验证 Chrony 是否使用了正确的 IP
chronyc sources -v
,并验证输出是否包含“^* 169.254.169.123” - 确定最佳时区
sudo timedatectl list-timezones
- 使用上一步中的路径从 UTC 更新时区,例如
sudo timedatectl set-timezone America/Chicago