GNU/Linux >> Znalost Linux >  >> Linux

Jak nastavit datum a čas v Linuxu

Tento výukový program se zaměřuje na techniky nastavení data a času v systému Linux pomocí timedatectl, NTP nebo date.

Jako správce systému můžete být požádáni o nastavení systémového data na více serverech .

Mohou být špatně nakonfigurovány nebo jejich časová pásma nemusí být správně nakonfigurován.

V důsledku toho mohou některé z vašich programů zaznamenávat neplatná data, což vede k tomu, že například nebudete moci zkontrolovat některé protokoly vašeho serveru.

V tomto tutoriálu se podíváme, jak můžete správně nastavit datum v Linuxu, aby odpovídalo vašemu aktuálnímu zeměpisnému časovému pásmu.

Nejprve se podíváme na příkaz timedatectl s možností systemd-timesync . Dále nainstalujeme buď chrony nebo NTP služby, abychom efektivně synchronizovali naše systémové datum.

Nakonec použijeme „datum ” pro statické nastavení našeho systémového data.

Budeme také diskutovat o rozdílech mezi těmito metodami a kterou z nich můžete chtít použít přednostně.

Předpoklady

Než začnete, musíte mít práva sudo na vašem hostiteli, abyste mohli provést některé z příkazů.

Abyste se o tom ujistili, můžete spustit následující příkaz

$ sudo -l

User user may run the following commands on localhost:
   (ALL) ALL

Pokud na svém účtu nemáte oprávnění sudo, postupujte podle tohoto návodu a získejte sudo na systémech založených na Debianu nebo na systémech založených na Red Hatu (CentOS, RHEL)

Nastavte datum v systému Linux pomocí timedatectl

Ať už pracujete na Debianu/Ubuntu nebo na RHEL/CentOS, způsob nastavení data je stejný.

Chcete-li nastavit datum, musíte nastavit informace o svém časovém pásmu a (volitelně) aktivovat protokol NTP, aby se váš systém synchronizoval se servery NTP. Pokud nepoužíváte protokol NTP (s ntpd nebo chrony), váš systém použije službu timesync ve výchozím nastavení.

Pokud je vaše časové pásmo špatně nakonfigurováno, budete muset upravit informace o časovém pásmu.

Chcete-li zjistit své aktuální časové pásmo v systému Linux, můžete spustit příkaz timedatectl.

$ timedatectl

                      Local time: Wed 2019-10-16 22:26:23 UTC
                  Universal time: Wed 2019-10-16 22:26:23 UTC
                        RTC time: Wed 2019-10-16 22:26:24
                       Time zone: Etc/UTC (UTC, +0000)
       System clock synchronized: no
systemd-timesyncd.service active: inactive
                 RTC in local TZ: no

Řekněme, že jej chcete upravit.

Chcete-li zobrazit časová pásma v systému Linux, použijte „seznam časových pásem ” pomocí timedatectl .

$ timedatectl list-timezones

Jak vidíte, časová pásma jsou prezentována pomocí následující syntaxe:kontinent/region .

Chcete-li nastavit své časové pásmo na New York, můžete jej snadno vyhledat pomocí grep.

$ timedatectl list-timezones | grep York
America/New_York

Chcete-li nastavit časové pásmo, použijte „nastavení časového pásma “.

$ timedatectl set-timezone America/New_York

Chcete-li zkontrolovat aktuální systémové datum, musíte znovu spustit příkaz timedatectl.

$ timedatectl

                      Local time: Wed 2019-10-16 18:35:36 EDT
                  Universal time: Wed 2019-10-16 22:35:36 UTC
                        RTC time: Wed 2019-10-16 22:35:36
                       Time zone: America/New_York (EDT, -0400)
       System clock synchronized: no
systemd-timesyncd.service active: inactive
                 RTC in local TZ: no

Vaše aktuální datum však ještě není synchronizováno, budete muset aktivovat službu NTP, aby se synchronizovala.

Ve výchozím nastavení, pokud pracujete s distribucí s systemd, měli byste mít démona systemd-timesync ve výchozím nastavení.

Hlavní rozdíl mezi systemd-timesync a NTP je v tom, že démon implementuje pouze klientskou stranu a nepoužívá složité mechanismy jako NTP.

Chcete-li povolit synchronizaci času , jednoduše spusťte tento příkaz.

$ timedatectl set-ntp true

systemd-timesyncd.service active: true

Pokud dáváte přednost použití chrony nebo NTP , další části popisují, jak můžete nastavit NTP a chrony za účelem synchronizace systémového data.

Nastavte datum v systému Linux pomocí chrony (NTP)

Nejpřesnějším způsobem nastavení data v systému Linux je použití ntp protokolu .

Pro rychlé připomenutí, protokol NTP se používá k synchronizaci času mezi různými servery v síti.

Budete používat referenční časové servery, které budou synchronizovány s vaším vlastním serverem pomocí výpočtu latence pro kontaktování referenčních serverů.

Pomocí protokolu NTP budete moci mít velmi přesné datum v Linuxu .

Chcete-li nastavit datum, použijete chrony službu.

Nejprve se ujistěte, že na vašem hostiteli neběží služba timesyncd.

$ sudo systemctl stop systemd-timesyncd.service

Dále se ujistěte, že jsou vaše balíčky na vašem serveru aktuální.

$ sudo yum update

Poté nainstalujte chrony balíček pomocí YUM.

$ sudo yum install chrony           [RHEL, CentOS]
$ sudo apt-get install chrony       [Debian, Ubuntu]

Ve většině případů může být služba chrony nainstalována ve výchozím nastavení vaší distribuce.

Chcete-li povolit a spustit službu chrony, musíte spustit následující příkazy.

$ sudo systemctl enable chronyd
$ sudo systemctl start chronyd

Ověřte stav své služby pomocí příkazu status.

$ sudo systemctl status chronyd

Nyní, když je chrony nainstalován ve vašem systému, můžete změnit systémové datum úpravou časového pásma vašeho systému.

Všimněte si, že pro příkaz timedatectl nemusíte nastavovat aktivaci protokolu NTP, protože spuštění chrony automaticky deaktivuje démona systemd-timesync, abyste mohli používat NTP.

Pokud se o tom chcete ujistit, stále můžete spustit následující příkaz.

$ timedatectl set-ntp true

Spusťte znovu příkaz timedatectl, abyste se ujistili, že je vše synchronizováno.

$ timedatectl

                      Local time: Wed 2019-10-17 18:37:37 EDT
                  Universal time: Wed 2019-10-16 22:37:37 UTC
                        RTC time: Wed 2019-10-16 22:37:33
                       Time zone: America/New_York (EDT, -0400)
       System clock synchronized: yes
       NTP service: active
                 RTC in local TZ: no

Poznámka :místo „služby NTP“ můžete mít štítek „systemd-timesyncd.service active“ stále nastaven na ano. Neznamená to, že je služba aktivní, ale znamená to, že hostitel jako způsob synchronizace používá chrony.

Můžete také spustit „datum ” a zkontrolujte aktuální systémové datum.

$ date 
Thu Oct 17 13:16:10 EDT 2019

Úžasné!

Úspěšně jste nastavili své datum v systému Linux (CentOS/RHEL) pomocí chrony.

Nastavte datum v systému Linux pomocí ntpd (NTP)

Jak bylo popsáno výše, použití protokolu NTP je pravděpodobně nejpřesnější způsob, jak nastavit datum na Ubuntu a Debianu.

Nejprve se chystáte nainstalovat službu ntp na hostitele .

Chcete-li nainstalovat klienta NTP, jednoduše spusťte následující příkaz.

$ sudo apt-get install ntp     [Debian, Ubuntu]
$ sudo yum install ntp         [CentOS, RHEL]

Ve výchozím nastavení se spuštěním tohoto příkazu nainstaluje a aktivuje NTP (Network Time Service ) na vašem hostiteli.

Chcete-li to zajistit, získejte stav služby NTP.

$ sudo systemctl status ntp

Ve výchozím nastavení spuštění nebo restartování služby NTP neaktivuje službu NTP pro příkaz timedatectl.

Chcete-li aktivovat synchronizaci NTP, zadejte „set-ntp “.

$ timedatectl set-ntp true

Opět spusťte jednoduchý příkaz timedatectl, abyste se ujistili, že vše běží správně.

$ timedatectl

                      Local time: Wed 2019-10-17 18:37:37 EDT
                  Universal time: Wed 2019-10-16 22:37:37 UTC
                        RTC time: Wed 2019-10-16 22:37:33
                       Time zone: America/New_York (EDT, -0400)
       System clock synchronized: yes
       systemd-timesyncd.service active: yes
                 RTC in local TZ: no

Úžasné !

Správně jste nastavili datum v Linuxu pomocí ntp .

Nastavte datum v systému Linux pomocí příkazu date

Jedním ze způsobů, jak nastavit datum v Linuxu, je použít příkaz date.

Jedním z hlavních nedostatků tohoto přístupu je skutečnost, že nikdy nebudete tak přesní jako nastavení časového pásma a jeho synchronizace s timesyncd nebo chronyd.

Je však stále možné to udělat tímto způsobem.

Nejprve deaktivujte synchronizaci času na vašem hostiteli, jinak bude vaše ruční změna data synchronizační službou pokaždé vymazána.

$ sudo timedatectl set-ntp false

Chcete-li nastavit datum, použijte „datum“ s možností „-s“.

$ date -s <date>

Například pomocí formátu yyyy-MM-dd , můžete datum nastavit tímto způsobem.

$ date -s '2019-10-17 12:00:00'
Thu Oct 17 12:00:03 EDT 2019

$ date -s '23 October 2019 12:00:00'
Wed Oct 23 12:00:00 EDT 2019

Můžete také použít zkratky abyste mohli snadno nastavit datum.

Pokud chcete upravit pouze rok, můžete použít „příští rok “ nebo „minulý rok “.

$ sudo date -s "next year"
Sat Oct 17 12:02:21 EDT 2020

$ sudo date -s "last year"
Thu Oct 17 12:02:43 EDT 2018

Můžete také upravit pouze měsíc nebo den pomocí následujících zkratek.

$ sudo date -s "next day"
Tue Oct 18 00:00:12 EDT 2019

$ sudo date -s "monday"
Mon Oct 21 00:00:00 EDT 2019

$ sudo date -s "next hour"
Wed Oct 21 13:00:19 EDT 2019

Synchronizujte hardwarové hodiny s datem systému

Než budete pokračovat v každodenních úlohách správy systému, může být dobré synchronizovat hardwarové hodiny s datem systému.

Tímto způsobem zajistíte, že vaše dvě hodiny neukazují různá data a hodiny.

Chcete-li synchronizovat hardwarové hodiny se systémovým datem, použijte příkaz „hwclock“ s možností „–systohc“.

$ sudo hwclock --systohc

$ sudo hwclock
2019-10-23 13:03:56.466724-0400

Skvělé!

Úspěšně jste synchronizovali vaše hardwarové hodiny s aktuálním datem systému.

Závěr

V dnešním tutoriálu jste se naučili, jak můžete snadno nastavit datum na jakémkoli systému Linux.

Dozvěděli jste se, že můžete nastavit časové pásmo a nechejte démona systemd-timesyncd proveďte synchronizaci času.

Pokud hledáte přesnější a efektivnější techniky synchronizace času, zjistili jste, že můžete použít buď chrony nebo NTP k dosažení tohoto výsledku.

Viděli jste také, že je možnénastavit datum staticky pomocí příkazu datum.

Pokud máte zájem o administraci systému Linux , máme na toto téma spoustu výukových programů.


Linux
  1. Jak nastavit nebo změnit časové pásmo v Linuxu

  2. Nastavte datum, čas a časové pásmo na serveru Linux

  3. 7 Linux Date Příklady příkazů pro zobrazení a nastavení systémového data a času

  1. Jak zobrazit datum a čas restartu systému Linux

  2. Nastavte systémové datum a čas pomocí C++ v Linuxu

  3. Jak nastavit Debian, aby automaticky aktualizoval čas a datum?

  1. Jak nastavit datum a čas na AlmaLinuxu

  2. Jak nastavit a vypsat proměnné prostředí v Linuxu

  3. Jak nastavit časové pásmo a synchronizovat čas serveru s NTP v Linuxu