Časové pásmo je nastaveno v době instalace OS Ubuntu a můžete jej změnit i později. Je velmi důležitým aspektem nastavení správného časového pásma pro aplikace, které jsou založeny na úlohách cron a časových razítkách.
Moderní operační systémy detekují a synchronizují čas pomocí časových serverů NIST (National Institute of Standards and Technology). NIST provozuje atomové hodiny, které za 300 milionů let nezískají ani neztratí ani vteřinu.
Zde v LinuxAPT, jako součást našich služeb správy serveru, pravidelně pomáháme našim zákazníkům provádět související dotazy na Ubuntu.
V této souvislosti se podíváme na různé metody změny časového pásma v systému Ubuntu 18.04.
Jak získat aktuální časové pásmo?
Než budete pokračovat v tomto konfiguračním postupu, ujistěte se, že používáte uživatelský účet s právy sudo.
Příkaz timedatectl je v podstatě stejný pro všechny distribuce Linuxu a používá se ke snadnému získání a nastavení časového pásma systému. Provedením níže uvedeného příkazu získáte aktuální časové pásmo:
$ timedatectl
Zobrazí výstup jako níže:
Local time: Tue 2021-04-30 11:57:15 IST
Universal time: Tue 2021-04-30 06:27:15 UTC
RTC time: Tue 2021-04-30 06:27:15
Time zone: Asia/Kolkata (IST, +0530)
System clock synchronized: yes
systemd-timesyncd.service active: yes
RTC in local TZ: no
Soubory konfigurace časového pásma na Ubuntu
- /usr/share/zoneinfo/ – V tomto adresáři jsou uloženy soubory podle názvu časového pásma. Například soubor /usr/share/zoneinfo/America/New_York představuje časové pásmo pro New York.
- /etc/localtime – Toto je symbolický odkaz na soubor localtime umístěný v adresáři /usr/share/zoneinfo/.
Jak změnit časové pásmo v Ubuntu?
Pro začátek byste měli znát dlouhý název časového pásma, které chcete nastavit. Chcete-li získat seznam všech dostupných časových pásem, spusťte níže příkaz:
$ timedatectl list-timezones
Zobrazí výstup jako níže:
Africa/Abidjan
Africa/Accra
Africa/Addis_Ababa
Africa/Algiers
Africa/Asmara
Africa/Bamako
Africa/Bangui
...
...
America/Caracas
America/Cayenne
America/Cayman
America/Chicago
America/Chihuahua
America/Costa_Rica
...
...
Pacific/Saipan
Pacific/Tahiti
Pacific/Tarawa
Pacific/Tongatapu
Pacific/Wake
Pacific/Wallis
UTC
Vezměte dlouhý název časového pásma, které chcete nastavit, a spusťte následující příkaz jako u uživatele sudo.
Základní syntaxe příkazu je:
$ sudo timedatectl set-timezone NEW_TIME_ZONE
Pokud je například vaše požadované časové pásmo Amerika/New_York, můžete jej nastavit spuštěním příkazu, jak je uvedeno níže:
$ sudo timedatectl set-timezone America/New_York
Nyní znovu ověřte časové pásmo pomocí příkazu timedatectl:
$ timedatectl
Mělo by se změnit s novým časovým pásmem Amerika/New_York:
Local time: Wed 2021-04-30 02:30:39 EDT
Universal time: Wed 2021-04-30 06:30:39 UTC
RTC time: Wed 2021-04-30 06:30:39
Time zone: America/New_York (EDT, -0400)
System clock synchronized: yes
systemd-timesyncd.service active: yes
RTC in local TZ: no
Jak změnit časové pásmo pomocí symbolického odkazu?
Dalším způsobem, jak změnit časové pásmo, je vytvoření symbolického odkazu. Tato metoda je užitečná, když váš server běží na starší verzi Ubuntu nebo když není dostupný příkaz timedatectl. Změníme časové pásmo vytvořením symbolického odkazu /etc/localtime na časové pásmo v adresáři /usr/share/zoneinfo.
Nejprve musíte smazat aktuální symbolický odkaz /etc/localtime nebo soubor zadáním:
$ sudo rm -rf /etc/localtime
Poté přidejte časové pásmo, které chcete nastavit, a vytvořte symbolický odkaz:
$ sudo ln -s /usr/share/zoneinfo/America/New_York /etc/localtime
Nyní, pokud to chcete ověřit, můžete to udělat výpisem souboru /etc/localtime nebo spuštěním příkazu date:
$ date
Zobrazí se níže výstup:
Output
Tue Apr 30 02:37:22 EDT 2021