我想将运行Ubuntu Linux的Amazon EC2实例中设置的时区更改为本地时间吗?
我的问题
如何在Amazon EC2中更改时区?
Answers:
它应该与您的桌面Ubuntu进程没有什么不同。看这里
执行以下操作(将时区设置为Australia/Adelaide
)
$ echo "Australia/Adelaide" | sudo tee /etc/timezone
Australia/Adelaide
$ sudo dpkg-reconfigure --frontend noninteractive tzdata
Current default time zone: 'Australia/Adelaide'
Local time is now: Sat May 8 21:19:24 CST 2010.
Universal Time is now: Sat May 8 11:49:24 UTC 2010.
更新资料
您可以使用tzselect
实用程序进行浏览。看到这里:http : //manpages.ubuntu.com/manpages/precise/man1/tzselect.1.html
这是一个交互式软件。我的Ubuntu(11.10)拥有它。
您也可以参考这篇维基百科文章
巴西
Brazil/Acre
Brazil/DeNoronha
Brazil/East
Brazil/West
sudo: dpkg-reconfigure: command not found
/usr/sbin/dpkg-reconfigure
吗?
通过检查您当前的时区
$ date
要更改它,请运行
$ sudo dpkg-reconfigure tzdata
这将显示地理区域列表。选择以缩小可用时区。接下来选择城市/时区。您已将系统更改为新时区。
AWS文档中提供了有关在ec2机器中更改时区的信息。请在下面找到详细信息:
更改时区
Amazon Linux实例默认设置为UTC(世界标准时间)时区,但是您可能希望将实例上的时间更改为本地时间或网络中的其他时区。
更改实例的时区
1.确定要在实例上使用的时区。/ usr / share / zoneinfo目录包含时区数据文件的层次结构。浏览该位置的目录结构以查找您所在时区的文件。
[ec2-user ~]$ ls /usr/share/zoneinfo
Africa Chile GB Indian Mideast posixrules US
America CST6CDT GB-Eire Iran MST PRC UTC
Antarctica Cuba GMT iso3166.tab MST7MDT PST8PDT WET
Arctic EET GMT0 Israel Navajo right W- SU
...
此位置上的某些条目是目录(例如America),并且这些目录包含特定城市的时区文件。查找要用于实例的城市(或您所在时区中的城市)。在此示例中,您可以使用洛杉矶的时区文件/ usr / share / zoneinfo / America / Los_Angeles。
2.使用新的时区更新/ etc / sysconfig / clock文件。
使用您喜欢的文本编辑器(例如vim或nano)打开/ etc / sysconfig / clock文件。您需要将sudo与您的编辑器命令一起使用,因为/ etc / sysconfig / clock由root拥有。
b。找到“ ZONE”项,并将其更改为时区文件(忽略路径的“ / usr / share / zoneinfo”部分)。例如,要更改为洛杉矶时区,请将“ ZONE”项更改为以下内容。
ZONE="America/Los_Angeles"
c。保存文件并退出文本编辑器。
3.在/ etc / localtime和您的时区文件之间创建符号链接,以便实例在引用本地时间信息时找到时区文件。
[ec2-user ~]$ sudo ln -sf /usr/share/zoneinfo/America/Los_Angeles /etc/localtime
4.重新启动系统以在所有服务和应用程序中获取新的时区信息。
[ec2-user ~]$ sudo reboot
/etc/sysconfig
文件夹
上述步骤均不适合我,因此请考虑在此处编写此新答案
# Delete any existing localtime link
sudo rm /etc/localtime
# Update time clock file with ZONE property
sudo vi /etc/sysconfig/clock
#Update the ZONE property to what you want say
ZONE="America/Los_Angeles"
sudo ln -sf /usr/share/zoneinfo/America/Los_Angeles /etc/localtime
sudo reboot
ln -f ...
,则首先调用rm
其引用对象是多余的,反之亦然。
UBUNTU 16.04的更新的答案:
做:
sudo timedatectl set-timezone America/New_York
更新您的时区。
要列出所有可用时区,您可以执行以下操作:
timedatectl list-timezones
在目录中找到您的时区/usr/share/zoneinfo/
。
例如,更改多伦多的时区 /usr/share/zoneinfo/America/Toronto
将您的时区符号链接到/etc/localtime
例如多伦多:
sudo ln -sf /usr/share/zoneinfo/America/Toronto /etc/localtime
重新启动以完成
reboot
注意:这是指在您的AWS启动配置“用户数据”下应使用linux框(在我的实例中为debian)。
如果您打算在下面的实例启动时设置TIMEZONE,请使用您自己的国家/城市(而不是“澳大利亚/悉尼”)来使用实例启动(如超级按钮)。
#!/bin/bash
/bin/rm -f /etc/localtime; /bin/ln -s /usr/share/zoneinfo/Australia/Sydney /etc/localtime
创建新的EC2实例并选择“ Amazon Linux 2 AMI(HVM)”作为Amazon Machine Image(AMI)时,您可以在“用户数据”部分插入这些行。根据您所在的地区,用适合您的时区更改第二行。我在中欧时间(CET)。请记住,此引导程序代码以root身份执行,并且在创建实例时仅执行一次。
#!/bin/bash
rm -rf /etc/localtime
ln -s /usr/share/zoneinfo/CET /etc/localtime
如果要查看所有其他可用时区,请使用ssh到一个实例并运行:
ls /usr/share/zoneinfo
在下面的链接中有很好的描述
e:g- sudo timedatectl设置时区亚洲/加尔各答