Možná jste nastavili úlohy cron který běží v určitou dobu za účelem zálohování důležitých souborů nebo provádění jakýchkoli úloh souvisejících se systémem. Nebo jste možná nakonfigurovali server protokolů k rotaci protokolů ze systému v pravidelných intervalech. Pokud jsou vaše hodiny nesynchronizované, tyto úlohy se neprovedou ve správný čas. To je důvod, proč je důležité nastavit správné časové pásmo na systémech Linux a udržovat hodiny synchronizované s internetem. Tato příručka popisuje, jak nastavit synchronizaci času na Ubuntu Linux. Níže uvedené kroky byly testovány na Ubuntu 18.04, ale jsou stejné pro ostatní systémy založené na Ubuntu, které používají systemd timesyncd službu.
Nastavit synchronizaci času na Ubuntu
Obvykle nastavujeme časové pásmo během instalace. Pokud chcete, můžete jej změnit nebo nastavit jiné časové pásmo.
Nejprve se podívejme na aktuální časové pásmo v našem systému Ubuntu pomocí příkazu "date":
$ date
Ukázkový výstup:
Tue Jul 30 11:47:39 UTC 2019
Jak vidíte na výše uvedeném výstupu, příkaz "date" zobrazuje aktuální datum a také aktuální čas. Zde je moje aktuální časové pásmo UTC což je zkratka pro Coordinated Universal Time .
Případně můžete vyhledat /etc/timezone soubor najít aktuální časové pásmo.
$ cat /etc/timezone UTC
Nyní se podívejme, zda jsou hodiny synchronizovány s internetem. Chcete-li to provést, jednoduše spusťte:
$ timedatectl
Ukázkový výstup:
Local time: Tue 2019-07-30 11:53:58 UTC Universal time: Tue 2019-07-30 11:53:58 UTC RTC time: Tue 2019-07-30 11:53:59 Time zone: Etc/UTC (UTC, +0000) System clock synchronized: yes systemd-timesyncd.service active: yes RTC in local TZ: no
Jak vidíte, příkaz "timedatectl" zobrazuje místní čas, univerzální čas, časové pásmo a zda jsou systémové hodiny synchronizovány s internetovými servery a zda systemd-timesyncd.service je aktivní nebo neaktivní. V mém případě se systémové hodiny synchronizují s internetovými časovými servery.
Pokud jsou hodiny nesynchronizované, zobrazí se „Systémové hodiny synchronizovány:ne“ jak je znázorněno na níže uvedeném snímku obrazovky.
Synchronizace času je zakázána.
Poznámka: Výše uvedený snímek obrazovky je starý. Proto vidíte jiné datum.
Pokud vidíte „Systémové hodiny synchronizovány: hodnota nastavena jako ne , může být služba timesyncd neaktivní. Takže jednoduše restartujte službu a zjistěte, zda to pomůže.
$ sudo systemctl restart systemd-timesyncd.service
Nyní zkontrolujte stav služby timesyncd:
$ sudo systemctl status systemd-timesyncd.service ● systemd-timesyncd.service - Network Time Synchronization Loaded: loaded (/lib/systemd/system/systemd-timesyncd.service; enabled; vendor preset: enabled) Active: active (running) since Tue 2019-07-30 10:50:18 UTC; 1h 11min ago Docs: man:systemd-timesyncd.service(8) Main PID: 498 (systemd-timesyn) Status: "Synchronized to time server [2001:67c:1560:8003::c7]:123 (ntp.ubuntu.com)." Tasks: 2 (limit: 2319) CGroup: /system.slice/systemd-timesyncd.service └─498 /lib/systemd/systemd-timesyncd Jul 30 10:50:30 ubuntuserver systemd-timesyncd[498]: Network configuration changed, trying to estab Jul 30 10:50:31 ubuntuserver systemd-timesyncd[498]: Network configuration changed, trying to estab Jul 30 10:50:31 ubuntuserver systemd-timesyncd[498]: Network configuration changed, trying to estab Jul 30 10:50:32 ubuntuserver systemd-timesyncd[498]: Network configuration changed, trying to estab Jul 30 10:50:32 ubuntuserver systemd-timesyncd[498]: Network configuration changed, trying to estab Jul 30 10:50:35 ubuntuserver systemd-timesyncd[498]: Network configuration changed, trying to estab Jul 30 10:50:35 ubuntuserver systemd-timesyncd[498]: Network configuration changed, trying to estab Jul 30 10:50:35 ubuntuserver systemd-timesyncd[498]: Network configuration changed, trying to estab Jul 30 10:50:35 ubuntuserver systemd-timesyncd[498]: Network configuration changed, trying to estab Jul 30 10:51:06 ubuntuserver systemd-timesyncd[498]: Synchronized to time server [2001:67c:1560:800
Pokud je tato služba povolena a aktivní, měly by se vaše systémové hodiny synchronizovat s internetovými časovými servery.
Zda je synchronizace času povolena nebo ne, můžete ověřit pomocí příkazu:
$ timedatectl
Pokud to stále nefunguje, spusťte následující příkaz a povolte synchronizaci času:
$ sudo timedatectl set-ntp true
Nyní se vaše systémové hodiny synchronizují s internetovými časovými servery.
Změňte časové pásmo pomocí příkazu Timedatectl
Co když chci použít jiné časové pásmo než UTC? Je to snadné!
Nejprve seznam dostupných časových pásem pomocí příkazu:
$ timedatectl list-timezones
Uvidíte výstup podobný níže uvedenému obrázku.
Vypište časová pásma pomocí příkazu timedatectl
Požadované časové pásmo (např. Asie/Kolkata) můžete nastavit pomocí příkazu:
$ sudo timedatectl set-timezone Asia/Kolkata
Znovu zkontrolujte, zda bylo časové pásmo skutečně změněno pomocí příkazu "date":
$ date Tue Jul 30 17:52:33 IST 2019
Nebo použijte příkaz timedatectl, pokud chcete podrobný výstup:
$ timedatectl Local time: Tue 2019-07-30 17:52:35 IST Universal time: Tue 2019-07-30 12:22:35 UTC RTC time: Tue 2019-07-30 12:22:36 Time zone: Asia/Kolkata (IST, +0530) System clock synchronized: yes systemd-timesyncd.service active: yes RTC in local TZ: no
Jak jste si všimli, změnil jsem časové pásmo z UTC na IST (indický standardní čas).
Chcete-li přepnout zpět na časové pásmo UTC, jednoduše spusťte:
$ sudo timedatectl set-timezone UTC
Změna časového pásma pomocí Tzdata
Ve starších verzích Ubuntu není příkaz Timedatectl dostupný. V takových případech můžete použít Tzdata (Data časového pásma) pro nastavení synchronizace času.
$ sudo dpkg-reconfigure tzdata
Vyberte geografickou oblast, ve které žijete. V mém případě jsem zvolil Asii . Vyberte OK a stiskněte klávesu ENTER.
nakonfigurujte časové pásmo pomocí příkazu tzdata
Dále vyberte město nebo region odpovídající vašemu časovému pásmu. Zde jsem zvolil Kolkatu .
nakonfigurovat časové pásmo pomocí tzdata
Nakonec uvidíte výstup podobný níže v Terminálu.
Current default time zone: 'Asia/Kolkata' Local time is now: Tue Jul 30 19:29:25 IST 2019. Universal Time is now: Tue Jul 30 13:59:25 UTC 2019.
Konfigurace časového pásma v grafickém režimu
Některým uživatelům nemusí způsob CLI vyhovovat. Pokud jste jedním z nich, můžete to vše snadno změnit na panelu nastavení systému v grafickém režimu.
Stiskněte klávesu Super (klávesa Windows), zadejte nastavení v pomlčce Ubuntu a klikněte na Nastavení ikonu.
Spusťte nastavení systému z Ubuntu dash
Případně klikněte na šipku dolů v pravém horním rohu plochy Ubuntu a klikněte na ikonu Nastavení v levém rohu.
Spusťte nastavení systému z horního panelu
V dalším okně zvolte Podrobnosti a poté klikněte na Datum a čas volba. Zapněte Automatické datum a čas a Automatické časové pásmo možnosti.
Nastavte automatické časové pásmo v Ubuntu
Zavřete okno Nastavení a máte hotovo! Vaše systémové hodiny by se nyní měly synchronizovat s internetovými časovými servery.