O Raspberry Pi não possui um relógio de hardware. Como forço o NTPD a atualizar a data / hora imediatamente após cada inicialização?
Estou executando o Raspbian e o Raspberry Pi está conectado usando um cabo Ethernet .
O Raspberry Pi não possui um relógio de hardware. Como forço o NTPD a atualizar a data / hora imediatamente após cada inicialização?
Estou executando o Raspbian e o Raspberry Pi está conectado usando um cabo Ethernet .
Respostas:
Faça um apt-get install ntpdate
.
ntpdate
funcionará quando uma interface Ethernet for ativada e definirá o horário de um servidor ntp (consulte /etc/default/ntpdate
).
Se ntpd
estiver em execução, o ntpdate não fará nada, no entanto, ntpdate
será executado antes ntpd
da inicialização - portanto, isso deve funcionar para definir o tempo de inicialização, desde que haja uma conexão Ethernet.
Linux raspberrypi 4.14.30-v7+ #1102 SMP Mon Mar 26 16:45:49 BST 2018 armv7l GNU/Linux
também não tinha.
Se o relógio estiver muito lento, talvez você precise forçar a sincronização do ntp fazendo:
sudo /etc/init.d/ntp stop
sudo ntpd -q -g
sudo /etc/init.d/ntp start
Depois de pesquisar, esse método funcionou para mim. Como você sabe, o Raspberry Pi 3 tem o NTP desativado por padrão. Então, basta digitar isso, o suporte NTP será ativado:
sudo timedatectl set-ntp True
Verifique o resultado com timedatectl status
Em caso de aviso, talvez você precise executar sudo timedatectl set-local-rtc true
também.
Se você definir o fuso horário no raspi-config
Raspberry Pi atualizará automaticamente o horário na inicialização, se estiver conectado à Internet.
sudo raspi-config
Internationalisation Options
I2 Change Timezone
Finish
Yes
para reiniciar agoraI2 Change Timezone
opção não existe mais
Ver postagem no fórum O tempo não é sincronizado no Pi 3 e com o dongle oficial .
O ntpd emite pacotes IP / UDP com o campo ToS definido como 0xc0. Isso é bem parecido com o outro problema que eu (e muitos outros) tenho com o Raspberry Pi3 quando operado por uma interface interna Wi-Fi.
Como solução alternativa, adicione o comando
/sbin/iptables -t mangle -I POSTROUTING 1 -o wlan0 -p udp --dport 123 -j TOS --set-tos 0x00
para o arquivo
/etc/rc.local
antes da linha de saída 0. Em seguida, reinicie e verifique.
Já deve estar atualizando a hora. O servidor NTPD deve iniciar logo após o arquivo de troca e antes do SSHD.
Verifique seu arquivo /etc/ntp.conf para garantir que ele esteja configurado.
Ele deve listar pelo menos um servidor. Eu uso o time.nrc.ca no meu servidor.
A página de manual do ntp.conf está aqui: http://linux.die.net/man/5/ntp.conf
O Rasberry Pi do meu filho não atualizava o tempo fora da caixa e, depois de tentar todas as sugestões acima, era possível atualizar manualmente, mas não automaticamente. Finalmente, depois de procurar em outro lugar também sem sucesso, descobri que o arquivo ntp.conf que acompanha o Rasberry Pi tinha as seguintes linhas comentadas:
#restrict 127.0.0.1
#restrict ::1
eu usei
sudo nano /etc/ntp.conf
no terminal para editar o arquivo conf ntp agora:
# Local users may interrogate the ntp server more closely.
restrict 127.0.0.1
restrict ::1
Isso resolveu o problema para nós. É atualizado com o cabo WiFi e ethernet. Não sei se ele seria atualizado com o WiFi sem a alteração para rc.local sugerida acima, pois quando encontrei a solução acima, eu já havia feito essa alteração e não a desfazi.
Encontrei o timedatectl
aplicativo para me ajudar quando estava tendo um problema semelhante. Ele é instalado por padrão e o '--help' fornece uma visão geral bastante boa e simples de como usar a ferramenta.
Nota: verifique se o fuso horário está definido corretamente, o que esta ferramenta também pode fazer.
Essa é a abordagem que acabei adotando. Muitas dessas respostas pareciam indicar coisas que simplesmente não saíram quando olhei para o meu sistema Raspian:
$ cat /etc/os-release
PRETTY_NAME="Raspbian GNU/Linux 9 (stretch)"
NAME="Raspbian GNU/Linux"
VERSION_ID="9"
VERSION="9 (stretch)"
ID=raspbian
ID_LIKE=debian
HOME_URL="http://www.raspbian.org/"
SUPPORT_URL="http://www.raspbian.org/RaspbianForums"
BUG_REPORT_URL="http://www.raspbian.org/RaspbianBugs"
Eu não tinha nada que aparecesse nos logs indicando que timedatectl
estava fazendo alguma coisa, ou que ntp
estava sincronizando no estado ativo da NIC, ou que o NTPD estava instalado / configurado.
No final, eu apenas adicionei isso ao meu /etc/rc.local
:
$ cat /etc/rc.local
logger "Beginning force syncing NTP..."
service ntp stop
ntpd -gq
service ntp start
logger "Finished force syncing NTP..."
E instalado ntp
:
$ sudo apt-get install ntp
O que resulta em /var/log/syslog
:
Aug 5 09:10:20 pi-hole ntp[526]: Starting NTP server: ntpd.
Aug 5 09:10:20 pi-hole ntpd[555]: proto: precision = 1.458 usec (-19)
Aug 5 09:10:20 pi-hole ntpd[555]: Listen and drop on 0 v6wildcard [::]:123
Aug 5 09:10:20 pi-hole ntpd[555]: Listen and drop on 1 v4wildcard 0.0.0.0:123
Aug 5 09:10:20 pi-hole ntpd[555]: Listen normally on 2 lo 127.0.0.1:123
Aug 5 09:10:20 pi-hole ntpd[555]: Listen normally on 3 eth0 192.168.1.85:123
Aug 5 09:10:20 pi-hole ntpd[555]: Listen normally on 4 lo [::1]:123
Aug 5 09:10:20 pi-hole ntpd[555]: Listen normally on 5 eth0 [fe80::f5ea:7663:4ec:784d%2]:123
Aug 5 09:10:20 pi-hole ntpd[555]: Listening on routing socket on fd #22 for interface updates
Aug 5 09:10:21 pi-hole ntpd[555]: ntpd exiting on signal 15 (Terminated)
Aug 5 09:10:21 pi-hole ntp[661]: Stopping NTP server: ntpd.
Aug 5 09:10:21 pi-hole ntpd[674]: ntpd 4.2.8p10@1.3728-o Sat Mar 10 18:03:33 UTC 2018 (1): Starting
Aug 5 09:10:21 pi-hole ntpd[674]: Command line: ntpd -gq
Aug 5 09:10:21 pi-hole ntpd[674]: proto: precision = 0.625 usec (-21)
Aug 5 09:10:21 pi-hole ntpd[674]: Listen and drop on 0 v6wildcard [::]:123
Aug 5 09:10:21 pi-hole ntpd[674]: Listen and drop on 1 v4wildcard 0.0.0.0:123
Aug 5 09:10:21 pi-hole ntpd[674]: Listen normally on 2 lo 127.0.0.1:123
Aug 5 09:10:21 pi-hole ntpd[674]: Listen normally on 3 eth0 192.168.1.85:123
Aug 5 09:10:21 pi-hole ntpd[674]: Listen normally on 4 lo [::1]:123
Aug 5 09:10:21 pi-hole ntpd[674]: Listen normally on 5 eth0 [fe80::f5ea:7663:4ec:784d%2]:123
Aug 5 09:10:21 pi-hole ntpd[674]: Listening on routing socket on fd #22 for interface updates
Aug 5 09:10:34 pi-hole ntpd[674]: Soliciting pool server 198.98.57.16
Aug 5 09:10:35 pi-hole ntpd[674]: Soliciting pool server 74.82.59.149
Aug 5 09:10:36 pi-hole ntpd[674]: Soliciting pool server 23.131.160.7
Aug 5 09:10:36 pi-hole ntpd[674]: Soliciting pool server 52.37.26.163
Aug 5 09:10:36 pi-hole ntpd[674]: Soliciting pool server 204.2.134.163
Aug 5 09:10:36 pi-hole ntpd[674]: Soliciting pool server 96.126.100.203
Aug 5 09:10:36 pi-hole ntpd[674]: Soliciting pool server 199.223.248.101
Aug 5 09:10:36 pi-hole ntpd[674]: Soliciting pool server 66.228.42.59
Aug 5 09:10:36 pi-hole ntpd[674]: Soliciting pool server 208.75.89.4
Aug 5 09:10:37 pi-hole ntpd[674]: Soliciting pool server 204.2.134.164
Aug 5 09:10:37 pi-hole ntpd[674]: Soliciting pool server 104.236.116.147
Aug 5 09:10:38 pi-hole ntpd[674]: Soliciting pool server 204.9.54.119
Aug 5 09:10:48 pi-hole ntpd[674]: ntpd: time set +6.769186 s
Aug 5 09:10:49 pi-hole ntpd[853]: ntpd 4.2.8p10@1.3728-o Sat Mar 10 18:03:33 UTC 2018 (1): Starting
Aug 5 09:10:49 pi-hole ntpd[853]: Command line: /usr/sbin/ntpd -p /var/run/ntpd.pid -g -u 111:114
Aug 5 09:10:49 pi-hole ntp[844]: Starting NTP server: ntpd.
Aug 5 09:10:49 pi-hole ntpd[856]: proto: precision = 0.625 usec (-21)
Aug 5 09:10:49 pi-hole ntpd[856]: Listen and drop on 0 v6wildcard [::]:123
Aug 5 09:10:49 pi-hole ntpd[856]: Listen and drop on 1 v4wildcard 0.0.0.0:123
Aug 5 09:10:49 pi-hole ntpd[856]: Listen normally on 2 lo 127.0.0.1:123
Aug 5 09:10:49 pi-hole ntpd[856]: Listen normally on 3 eth0 192.168.1.85:123
Aug 5 09:10:49 pi-hole ntpd[856]: Listen normally on 4 lo [::1]:123
Aug 5 09:10:49 pi-hole ntpd[856]: Listen normally on 5 eth0 [fe80::f5ea:7663:4ec:784d%2]:123
Aug 5 09:10:49 pi-hole ntpd[856]: Listening on routing socket on fd #22 for interface updates
Aug 5 09:10:49 pi-hole root: Finished force syncing NTP...
Failed to start ntp.service: Unit ntp.service not found.
E o ntpd também não existe. O Pi definitivamente ganha tempo. (Eu estou olhando para isso porque meus cachos HTTPS falhar sem -k quando executado antes disso)
apt-get install ntp
Você não precisa usar o ntp para resolver o problema. Há um script que lê a data de um servidor e você só precisa definir a data para ser o resultado desse script (seu Raspberry Pi precisa estar conectado à Internet). Em seguida, você precisa executar esse comando na inicialização.
Etapa 1: recuperar a data de um servidor.
sudo date -s "$(wget -qSO- --max-redirect=0 google.com 2>&1 | grep Date: | cut -d' ' -f5-8)Z"
Etapa 2: execute o comando na inicialização adicionando-o ao arquivo /etc/rc.local
(Trabalhado no Ubuntu 16.04).
sudo gedit /etc/rc.local
CRÉDITOS: