¿Cómo configuro la hora y la fecha desde Internet?

35

¿Cómo recupero la fecha de Internet y configuro el reloj de mi computadora desde la línea de comandos?

Mohsen
fuente
3
No entiendo los votos negativos. Las preguntas simples son las que hacen que una comunidad sea poderosa. Por ejemplo, mira esto
Mohsen
3
Cuando paso el cursor sobre la flecha hacia abajo de una pregunta con el mouse, veo: "Esta pregunta no muestra ningún esfuerzo de investigación; no está clara o no es útil". Me sentiría tentado a rechazar su pregunta en base a la primera (sin indicación de lo que encontró), la segunda (sin indicación sobre en qué plataforma específica está trabajando y por qué esto tiene que ser la línea de comandos (en lugar del demonio de tiempo habitual) ) y el tercero (la mayoría de los usuarios de * nix tendrán algún tiempo instalado de forma predeterminada).
Anthon
+1 Tampoco entiendo los votos negativos, simplemente porque esto es algo que me ha molestado muchas veces antes, y parece imposible encontrar algo conciso y útil sobre este tema específico.
l0b0
@Mohsen No downvote pero la diferencia a la pregunta que vinculado es que no hay switchen rubí mientras que se puede fijar directamente a través de la fecha date -s(como se muestra en la página de manual), o utilizar cualquiera de los comandos que se describen a continuación ...
Ulrich Dangel
1
@Anthon No estoy de acuerdo: esa pregunta es sobre un pequeño dispositivo con BusyBox, lo que hace que el consejo genérico “use NTP” no sea necesariamente aplicable
Gilles 'SO- deja de ser malvado'

Respuestas:

29

Puedes usar :

sudo dpkg-reconfigure tzdata

para configurar tu zona horaria.

Para actualizar la hora y la fecha desde internet, use lo siguiente:

Instalar

Si ntpd no está instalado, utilice cualquiera de los siguientes comandos para instalar ntpd:

  • Para RPM basado:

    yum install ntp 
    
  • Para Debian basado:

    sudo apt-get install ntp
    

Configuración

Al menos debe establecer el siguiente parámetro en el archivo de configuración /etc/ntp.conf: servidor

Por ejemplo, un archivo /etc/ntp.conf abierta utilizando el editor de texto vi:

  # vi /etc/ntp.conf

Localice el parámetro del servidor y configúrelo de la siguiente manera:

  server pool.ntp.org

Guarde el archivo y reinicie el servicio ntpd:

  # /etc/init.d/ntpd start

Puede sincronizar el reloj del sistema a un servidor NTP inmediatamente con comando siguiente:

  # ntpdate pool.ntp.org

* Para ajustar la hora y la fecha manualmente usar la siguiente sintaxis:

 date --set="STRING"

Por ejemplo, establecer nuevos datos al 2 de Oct de 2006 18:00:00, escriba el siguiente comando como usuario root:

# date -s "2 OCT 2006 18:00:00"

O

# date --set="2 OCT 2006 18:00:00"

También puede simplificar el formato utilizando la siguiente sintaxis:

# date +%Y%m%d -s "20081128"

Para establecer el tiempo, use la siguiente sintaxis:

# date +%T -s "10:13:13"

Dónde,

10: Hora (hh) 13: minuto (mm) 13: Segundo (ss)

equivalente% Uso de la configuración regional de p AM o PM, entre:

# date +%T%p -s "6:10:30AM"

# date +%T%p -s "12:10:30PM"
tusharmakkar08
fuente
Aunque la información de la fecha parece válida, no toma en cuenta el requisito from the internetdel título del OP en ningún lado.
Anthon
Creo que el paquete tzdata (datos de zona horaria) sincroniza los datos de internet solamente. Corrígeme si estoy equivocado .
tusharmakkar08
3
tzdata es información sobre zonas horarias y horario de verano (inicio, finalización, época), no la fecha y hora reales . Por supuesto, es útil saber cómo llegar a su hora local basándose en el conocimiento de su zona horaria y la hora UTC, pero aún necesita recuperar esta última de Internet.
Anthon
Está usted equivocado. los datos de la zona horaria deben actualizarse (ya que hay cambios que ocurren todo el tiempo) PERO no se actualiza automáticamente desde Internet NOR establece la hora desde Internet.
Ulrich Dangel
@Anthon: he editado mi respuesta correspondientemente. Gracias.
tusharmakkar08
23

Un pequeño código que encontré para actualizar su tiempo en caso de que no quiera instalar nada solo para actualizar la fecha. :)

sudo date -s "$(wget -qSO- --max-redirect=0 google.com 2>&1 | grep Date: | cut -d' ' -f5-8)Z"
Prashant Kabade
fuente
1
Solía google.inobtener la hora actual de mi zona horaria (INDIA).
Dilawar
Tenga en cuenta el final Zque indica que la hora se da en la zona horaria zulú, por lo que no se necesita una manipulación especial de la zona horaria si la zona horaria de la computadora está configurada correctamente.
user202729
10

Yo uso esto:

sudo ntpd -qg; sudo hwclock -w

primero dígale a ntpd que solo configure la hora y se detenga después de eso con -q. Además, en caso de que su reloj tenga un gran error, debemos decirle a ntpd que también se ajuste en ese caso con -g. Finalmente, escriba el reloj en el hardware para preservar los cambios al reiniciar con hwclock -w (-w para configurar hardwareclock a la hora actual del sistema, hay una diferencia).

Silverrocker
fuente
1
que tienden a hacer esto con un "&&" en lugar de la coma de manera que si el primer comando falla (por ejemplo la red de conectividad hacia abajo) el segundo comando está cortocircuitado
Teofrasto
7

Use ntpdate, ntpd o Chrony para conectarse a un servidor NTP.

Ignacio Vazquez-Abrams
fuente
5

Algunas distribuciones son fechas de envío para ese propósito. Uso básico:

# just query
bash-4.2$ rdate pool.ntp.org
rdate: [pool.ntp.org]   Wed Jun 12 11:05:40 2013

# set system time
bash-4.2$ rdate -s pool.ntp.org
hombre trabajando
fuente
Mucho
pool.ntp.orgahora rechaza las conexiones de rdate. time.nist.govtrabajos. Además, una vez que haya configurado la hora del sistema, también debe configurar el reloj del hardware ejecutándolo hwclock -wpara configurar la hora del sistema. Luego puede verificar que es correcto ejecutandohwclock -r
MatthewLee
5

Después de un poco de investigación, terminé con esto. También lo apliqué a mi propio servidor:

sudo apt-get install ntp
sudo dpkg-reconfigure ntp
ntpq -p

Si el último comando muestra una lista válida de servidores, está listo para comenzar. El comando ejecutará un conjunto bastante complejo de algoritmos que iterará su deriva del reloj, entre otras cosas, y los compensará. Terminará con un reloj bastante preciso incluso si pierde la conexión con los servidores NTP. Sin embargo, el comando requiere unos minutos para comenzar.

Fuente: aquí y aquí .

Tubos
fuente
0

Para encontrar "pares" (hosts que puede consultar) puede usar ntpq -p.

Si ya tiene un servicio NTP ejecutándose, debe detenerlo antes de actualizarlo manualmente, por ejemplo, utilizando sudo service ntp stop .

Ahora puede consultar a un par, por ejemplo usando sudo ntpdate "peer".

l0b0
fuente
0

Usando la herramienta rdate como se sugiere en la respuesta de manatwork , pero con el protocolo SNTP -ny las -4opciones de IPv4 en:

# just print synced time, not set
rdate -n -4 -p time-a.nist.gov

# print and set synced time
sudo rdate -n -4 time-a.nist.gov

La herramienta se puede instalar en Debian de esta manera:

sudo apt-get install rdate
Sargento
fuente
0

Además de la respuesta de Tushar , también tuve que hacerapt-get install ntpdate en mi Ubuntu 14.04.

Publicar como respuesta porque la reputación no es suficiente para comentar.

pylipp
fuente
0

También estaba buscando una forma no ntp / ntpd de restablecer el reloj periódicamente. Me gustó el análisis del encabezado de google.com pero descubrí que no funcionaba en ubuntu. Creo que esto también funcionará en una Raspberry Pi.

sudo date +"%d %b %Y %T %Z" -s "$(wget -qSO- --max-redirect=0 http://google.com 2>&1 | grep '^  Date:' | cut -d' ' -f 5-)"

También es una alternativa usar curl en lugar de wget.

sudo date +"%d %b %Y %T %Z" -s "$(curl -s --head http://google.com | grep '^Date:' | cut -d' ' -f 3-)"

Probado en PI con red celular y los resultados son similares:

Using host & wget -- RCV: 1324 bytes SND: 581 bytes
Using host & curl -- RCV: 1318 bytes SND: 567 bytes

Tenga en cuenta que uso host para resolver google.com a una dirección IP para poder abrir solo esa IP mientras dure este comando con iptables.

Ron B
fuente