Ativar sincronização do relógio do sistema


14

'timedatectl' está dando o seguinte resultado -

                      Local time: Wed 2018-06-13 18:08:51 IST
                  Universal time: Wed 2018-06-13 12:38:51 UTC
                        RTC time: Wed 2018-06-13 12:38:51
                       Time zone: Asia/Kolkata (IST, +0530)
       System clock synchronized: no
systemd-timesyncd.service active: yes
                 RTC in local TZ: no

Como definir o relógio do sistema sincronizado como yes?

Respostas:


10

Uma maneira de fazer isso é usar o ntpque ainda funciona no Ubuntu 18.04. Execute o seguinte comando para instalar ntp.

sudo apt install ntp

Depois de instalado, você pode executar ntpq -ppara verificar se está funcionando.

~$ ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
 0.ubuntu.pool.n .POOL.          16 p    -   64    0    0.000    0.000   0.000
 1.ubuntu.pool.n .POOL.          16 p    -   64    0    0.000    0.000   0.000
 2.ubuntu.pool.n .POOL.          16 p    -   64    0    0.000    0.000   0.000
 3.ubuntu.pool.n .POOL.          16 p    -   64    0    0.000    0.000   0.000
 ntp.ubuntu.com  .POOL.          16 p    -   64    0    0.000    0.000   0.000

Em seguida, /etc/crontabadicione seu arquivo @reboot root /usr/sbin/ntpd -npara que ntpdele inicie automaticamente quando o sistema reiniciar. Use o seu editor favorito como geditou mousepadou o que quiser:

pkexec gedit /etc/crontab

Deve parecer assim quando a linha é adicionada:

# /etc/crontab: system-wide crontab
# Unlike any other crontab you don't have to run the `crontab'
# command to install the new version when you edit this file
# and files in /etc/cron.d. These files also have username fields,
# that none of the other crontabs do.

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

# m h dom mon dow user  command
17 *    * * *   root    cd / && run-parts --report /etc/cron.hourly
25 6    * * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6    * * 7   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6    1 * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
@reboot     root    /usr/sbin/ntpd -n
#

Em seguida, reinicie o computador para que as configurações entrem em vigor.

~$ timedatectl status
                      Local time: Wed 2018-06-13 06:55:35 MDT
                  Universal time: Wed 2018-06-13 12:55:35 UTC
                        RTC time: Wed 2018-06-13 12:55:36
                       Time zone: America/Denver (MDT, -0600)
       System clock synchronized: yes
systemd-timesyncd.service active: yes
                 RTC in local TZ: no

Se você deseja alterar seus servidores para os servidores Asia Pool , adicione-os à # Use servers from the NTP Pool Project.parte do /etc/ntp.confarquivo da seguinte maneira:

# Use servers from the NTP Pool Project. Approved by Ubuntu Technical Board
# on 2011-02-08 (LP: #104525). See http://www.pool.ntp.org/join.html for
# more information.
server 0.asia.pool.ntp.org
server 1.asia.pool.ntp.org
server 2.asia.pool.ntp.org
server 3.asia.pool.ntp.org

Espero que isto ajude!


17

Isso pode ser feito sem a implantação do NTP da seguinte maneira:

sudo nano /etc/systemd/timesyncd.conf  

Edite os detalhes do servidor NTP

[Time]
NTP=ur.ntp.srv
FallbackNTP=ur.fallbackntp.srv

Então

sudo systemctl daemon-reload
sudo timedatectl set-ntp off
sudo timedatectl set-ntp on

e você pode conferir com

timedatectl status

Você também pode fornecer uma lista de servidores ntp (lista separada por espaço) em seu timesyncd.confarquivo NTP=0.ur.ntp.srv 1.ur.ntp.srv:; Você também pode fornecer um pool de servidores (pool global ou específico para uma região ou país): pool.ntp.org/zone/@
Géraud

4

O seguinte funcionou para mim:

timedatectl set-ntp true

e depois...

systemctl restart systemd-timesyncd

Exemplo:

insira a descrição da imagem aqui


3

Opção Gui: Vá para "Configurações" -> "Detalhes" -> "Data e hora" -> Ative "Data e hora automáticas".

systemctl restart systemd-timesyncd pode ajudar


3

Para aqueles que usam o Ubuntu 18+ em instâncias do AWS EC2, achei isso funcionado de maneira fantástica. Ele utiliza o serviço de sincronização de horário interno da AWS:

sudo apt install chrony
sudo nano /etc/chromny/chrony.conf

Adicione a seguinte linha antes de qualquer outra entrada do servidor:

server 169.254.169.123 prefer iburst minpoll 4 maxpoll 4

e depois

sudo /etc/init.d/chrony restart

A melhor parte desse método para instâncias do EC2 é que você não precisa modificar suas regras de grupo de segurança, mesmo que sua instância não esteja conectada à Internet :)

Fonte


2

Um caso relacionado que não é exatamente esse, mas eu quero adicioná-lo em algum lugar:

É possível, como foi o meu caso, que essa timedatectlsaída corresponda à porta NTP que está sendo bloqueada pelo seu firewall.

No Ubuntu, você pode permitir explicitamente as comunicações na porta NTP 123, executando o seguinte comando:

sudo ufw allow out from any to any port 123

Isso permitirá o tráfego de saída de um serviço em execução no seu PC usando qualquer combinação de porta / protocolo de rede para serviços em execução em uma máquina remota usando a porta 123 com qualquer protocolo de rede. Isso inclui serviços executados em máquinas remotas que implementam o protocolo de horário da rede, necessário para poder solicitar o horário de uma máquina remota.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.