Wie stelle ich die Zeitzone in Amazon EC2 ein?

71

Ich möchte die in meiner Amazon EC2-Instanz unter Ubuntu Linux festgelegte Zeitzone auf Ortszeit ändern.

Meine Frage

Wie ändere ich die Zeitzone in Amazon EC2?

Gaurav Agarwal
quelle

Antworten:

86

Es sollte nicht anders sein als Ihr Desktop-Ubuntu-Prozess. Siehe hier

  1. SSH zu Ihrem EC2-Server
  2. Führen Sie Folgendes aus (um die Zeitzone auf einzustellen 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.
    

Aktualisieren

Sie können das tzselectDienstprogramm zum Durchsuchen verwenden. Siehe hier: http://manpages.ubuntu.com/manpages/precise/man1/tzselect.1.html

Es ist eine interaktive Software. Mein Ubuntu (11.10) hat es.

Sie können auch auf diesen Wikipedia-Artikel verweisen

Brasilien

Brazil/Acre
Brazil/DeNoronha
Brazil/East
Brazil/West
Nishant
quelle
+1, danke, wie könnte ich es für verschiedene Länder einstellen, so wie ich die Zeitzone für Norwegen und dann für Brasilien einstellen muss.
Gaurav Agarwal
4
Ich bekomme diese Antwortsudo: dpkg-reconfigure: command not found
Gaurav Agarwal
siehst du es nicht in /usr/sbin/dpkg-reconfigure?
Nishant
Nein und ich kann auch nicht apt-get machen. Ich habe eine verwandte Frage hier gestapelt stackoverflow.com/questions/11935091/…
Gaurav Agarwal
4
Für Ubuntu über die Befehlszeile bietet der folgende Link den trivialen einzeiligen Befehl: askubuntu.com/a/524362/182454
Dan Nissenbaum
64

Eine andere Möglichkeit, die Zeit zu ändern (Dies wurde auf einer Amazon EC2 Linux-Instanz durchgeführt)

Entfernen Sie Ihre Ortszeitdatei

sudo rm /etc/localtime

Ändern Sie das Verzeichnis in ZoneInfo

cd /usr/share/zoneinfo

Dieser Ordner enthält alle Zeitzoneninformationen. Sie müssen dann nur noch einen Softlink zur entsprechenden Zone erstellen.

Erstellen Sie einen Softlink zu / etc / localtime

sudo ln -s /usr/share/zoneinfo/GB /etc/localtime

Dadurch wird die Zeitzone Ihres Servers in GB geändert

Ajtrichards
quelle
(Stellen Sie sicher, dass Sie Apache nach dem Anwenden der Änderung neu starten)
T. Ato
38

Überprüfen Sie Ihre aktuelle Zeitzone mit

$ date

Um es zu ändern, führen Sie

$ sudo dpkg-reconfigure tzdata

Dies zeigt eine Liste der geografischen Gebiete. Wählen Sie diese Option, um die verfügbaren Zeitzonen einzugrenzen. Als nächstes wählen Sie Stadt / Zeitzone. Und Sie haben das System auf eine neue Zeitzone umgestellt.

Sanjeev Barnwal
quelle
1
Danke dafür. Es war einfach, schmerzlos und viel weniger Schritte als die Antworten anderer Leute. Ich habe die in der Dokumentation von Amazon beschriebenen Schritte ausprobiert, aber das hat nicht funktioniert. Das hat wie ein Zauber gewirkt.
Scott M. Stolz
16

Informationen finden Sie in der aws- Dokumentation zum Ändern der Zeitzone in der ec2-Maschine finden Sie Bitte finden Sie unten die Details:

Ändern der Zeitzone

Amazon Linux-Instanzen sind standardmäßig auf die UTC-Zeitzone (Coordinated Universal Time) eingestellt. Möglicherweise möchten Sie jedoch die Zeit einer Instanz auf die Ortszeit oder eine andere Zeitzone in Ihrem Netzwerk ändern.

So ändern Sie die Zeitzone einer Instanz

1. Identifizieren Sie die Zeitzone, die für die Instanz verwendet werden soll. Das Verzeichnis / usr / share / zoneinfo enthält eine Hierarchie von Zeitzonendatendateien. Durchsuchen Sie die Verzeichnisstruktur an diesem Speicherort, um eine Datei für Ihre Zeitzone zu finden.

[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
...

Einige der Einträge an diesem Speicherort sind Verzeichnisse (z. B. Amerika), und diese Verzeichnisse enthalten Zeitzonendateien für bestimmte Städte. Suchen Sie Ihre Stadt (oder eine Stadt in Ihrer Zeitzone), die Sie für die Instanz verwenden möchten. In diesem Beispiel können Sie die Zeitzonendatei für Los Angeles / usr / share / zoneinfo / America / Los_Angeles verwenden.

2. Aktualisieren Sie die Datei / etc / sysconfig / clock mit der neuen Zeitzone.

a.Öffnen Sie die Datei / etc / sysconfig / clock mit Ihrem bevorzugten Texteditor (z. B. vim oder nano). Sie müssen sudo mit Ihrem Editor-Befehl verwenden, da / etc / sysconfig / clock dem Root gehört.

Suchen Sie den ZONE-Eintrag und ändern Sie ihn in die Zeitzonendatei (ohne den Abschnitt / usr / share / zoneinfo des Pfads). Um beispielsweise in die Zeitzone von Los Angeles zu wechseln, ändern Sie den ZONE-Eintrag wie folgt.

ZONE="America/Los_Angeles"

Speichern Sie die Datei und beenden Sie den Texteditor.

3.Erstellen Sie eine symbolische Verknüpfung zwischen / etc / localtime und Ihrer Zeitzonendatei, damit die Instanz die Zeitzonendatei findet, wenn sie auf lokale Zeitinformationen verweist.

[ec2-user ~]$ sudo ln -sf /usr/share/zoneinfo/America/Los_Angeles /etc/localtime

4. Starten Sie das System neu, um die neuen Zeitzoneninformationen in allen Diensten und Anwendungen abzurufen.

[ec2-user ~]$ sudo reboot
Varun
quelle
2
Auf meinem Ubuntu 14.04 gibt es keinen /etc/sysconfigOrdner
NineCattoRules
@ Simone: Die obigen Vorschläge gelten für Amazon Linux-Computer. Da Sie Ubuntu 14.04 verwenden - können Sie überprüfen, ob dies hilft.ubuntu.com/community/UbuntuTime
Varun
Vielen Dank, ich fand diesen stackoverflow.com/questions/11931566/… bereits nützlich . Was ich jedoch nicht verstehe, ist, dass meine Serverzeit auf Etc / UTC eingestellt sein sollte oder auf meine Ortszeit oder basierend darauf, wo sich meine Instanz befindet?
NineCattoRules
1
@Simone Normalerweise - es hängt von Ihrem Anwendungsfall ab, welche Standardzeit in Ihren Anwendungen ausgeführt werden soll, die auf dieser Instanz ausgeführt wird, wenn Sie "current_timestamp" usw. abrufen. Normalerweise empfehle ich persönlich, dass Sie die UTC-Zeitzone standardmäßig festlegen und dann konvertieren zu welcher Zeitzone Sie benötigen.
Varun
Ich habe es versucht und es hat aus irgendeinem Grund nicht funktioniert. / etc / sysconfig / clock existiert nicht einmal. Zum Glück habe ich einen anderen Weg gefunden, aber dies funktioniert anscheinend nicht in allen Fällen.
Scott M. Stolz
9

Keiner der oben genannten Schritte hat bei mir funktioniert, daher habe ich mir überlegt, diese neue Antwort hier zu schreiben

# 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
Hemant
quelle
1
Nur diese Methode hat auch bei mir funktioniert. 2 Stunden meines Lebens verschwendet. TT
Arthur Melo
Wenn Sie verwenden ln -f ..., ist das erste Aufrufen rmdes Referenten redundant und umgekehrt.
StvnW
6

aus dem RHEL 7 Admin Guide

Dies scheint der Befehl für REDHAT7 zu sein

timedatectl set-timezone "Europe/Stockholm"

Um alle verfügbaren Zeitzonen abzurufen, geben Sie Folgendes ein:

timedatectl list-timezone

Für weitere Informationen verwenden Sie

man timedatectrl
TheRueger
quelle
6

AKTUALISIERTE ANTWORT FÜR UBUNTU 16.04:

Tun:

sudo timedatectl set-timezone America/New_York

um deine Zeitzone zu aktualisieren.

So listen Sie alle verfügbaren Zeitzonen auf:

timedatectl list-timezones
Aakash Malhotra
quelle
6

Suchen Sie Ihre Zeitzone im Verzeichnis /usr/share/zoneinfo/.

ZB Um die Zeitzone für Toronto zu ändern /usr/share/zoneinfo/America/Toronto

Verknüpfen Sie Ihre Zeitzone mit /etc/localtimez. B. für Toronto:

sudo ln -sf /usr/share/zoneinfo/America/Toronto /etc/localtime

Zum Abschluss neu starten

reboot
Anthony Awuley
quelle
1
Ich denke, Sie haben einen Schritt verpasst - aktualisieren Sie Ihre Systemuhr, damit die Änderungen beim Neustart beibehalten werden: sudo nano /etc/sysconfig/clockund ändern Sie ZONE="UTC"zu ZONE="America/New_York"oder was auch immer. Lassen Sie UTC=trueallein da Amazon verlangt , dass für die Hardware - Uhr.
Typel
0

HINWEIS: Dies bezieht sich auf eine Linux-Box (in meinem Fall Debian), die unter Ihren AWS-Startkonfigurationen "Benutzerdaten" verwendet werden sollte.

Wenn Sie vorhaben, die TIMEZONE auf die unten stehende Instanz-Boot-Verwendung einzustellen (funktioniert wie ein Zauber), verwenden Sie Ihr eigenes Land / Ihre eigene Stadt anstelle von "Australien / Sydney".

#!/bin/bash

/bin/rm -f /etc/localtime; /bin/ln -s /usr/share/zoneinfo/Australia/Sydney /etc/localtime
Rodrigo Rubio
quelle
0

Wenn Sie eine neue EC2-Instanz erstellen und "Amazon Linux 2 AMI (HVM)" als Amazon Machine Image (AMI) auswählen, können Sie diese Zeilen in den Abschnitt "Benutzerdaten" einfügen. Ändern Sie basierend auf der Region, in der Sie sich befinden, die zweite Zeile mit der für Sie geeigneten Zeitzone. Ich bin in mitteleuropäischer Zeit (MEZ). Beachten Sie, dass dieser Bootstrap-Code als Root und nur einmal ausgeführt wird, wenn die Instanz erstellt wird.

#!/bin/bash
rm -rf /etc/localtime
ln -s /usr/share/zoneinfo/CET /etc/localtime

Wenn Sie alle anderen verfügbaren Zeitzonen anzeigen möchten, ssh zu einer Instanz und führen Sie Folgendes aus:

ls /usr/share/zoneinfo
Olivier C.
quelle