¿Ubuntu se ajustará automáticamente al segundo salto al final del año (2016)?

43

La BBC informa:

Se agregará un segundo adicional a los relojes del mundo en la víspera de Año Nuevo para mantenerse sincronizado con la rotación de la Tierra.

¿Significa esto que tengo que hacer algo para que mi máquina Ubuntu se mantenga al día con esto o se ajustará automáticamente para no ser un segundo apagado?

Kaz Wolfe
fuente
2
Puede disfrutar este video (que también habla sobre los segundos bisiestos) youtube.com/watch?v=-5wpm-gesOY
Thorbjørn Ravn Andersen el
1
@ ThorbjørnRavnAndersen ¡Oh, ese es Tom Scott!
Ismael Miguel

Respuestas:

34

Si su máquina Ubuntu escucha NTP y sincroniza la hora con Internet, el sistema se ajustará automáticamente a la diferencia horaria.

Si bien es posible que su computadora no sea necesariamente consciente del hecho de que ocurrió un salto de segundo, detectará y registrará el evento a medida que los servidores NTP empujen el cambio a través de Internet.

Si no siente que se está agregando el segundo extra, puede forzar una actualización con el siguiente comando:

sudo ntpdate -s pool.ntp.org

Esto realizará automáticamente la geolocalización para darle un servidor cercano (reduciendo el error de latencia) y Ubuntu se ajustará a su zona horaria (por lo tanto, si el servidor está en una zona horaria diferente, todo está bien). Alternativamente, puedes usar ntp.ubuntu.com.

Tenga en cuenta que si tiene mala suerte, ninguno de los servidores de tiempo que está utilizando manejará el segundo de salto correctamente. Es poco probable, pero posible. Se recomienda verificar manualmente con una buena fuente conocida (radio analógica, posiblemente time.is ).


Alternativamente, si está en una versión moderna de Ubuntu, hay una utilidad incorporada llamada timedatectl. Por defecto, esto se ejecuta una vez automáticamente al inicio. Por lo tanto, un reinicio rápido puede forzar una sincronización si es necesario.

Kaz Wolfe
fuente
1
En el Reino Unido, usar time.nist.gov todavía funciona. Ubuntu ajusta lo que informa para mi zona horaria. Supongo que lo mismo es cierto para todas las zonas horarias
Tim
2
@Tim Sí, pero la sincronización con un servidor en los EE. UU. Tiene una latencia más alta = mayor tasa de error ... por lo que funciona, pero el resultado final es menos preciso que con el uso de un servidor más cercano.
Bakuriu
1
Intenta en su pool.ntp.orglugar; Esto siempre debe recoger algo relativamente cerca de usted.
Michael Hampton
3
Esta respuesta es problemática. 1.) Si tienes mala suerte, ninguno de los servidores de tiempo que usarás manejará el segundo de salto correctamente. Es poco probable, pero posible. 2.) Si se ntpdestá ejecutando, la ejecución ntpdatesimultánea lo confundirá. Es mejor detenerlo primero. Mejor aún, no corras ntpdateen absoluto. 3.) Los servidores de hora NIST no necesitan tráfico adicional de Stack Exchange; ntp.ubuntu.como pool.ntp.orgsería mejor 4.) El Reino Unido realmente usa uk.pool.ntp.org, pero pool.ntp.orgrealizará la geolocalización de todos modos.
Matt Nordhoff el
Olvidé uno. 5.) Si se está ejecutando ntpdatecontra servidores de tiempo aleatorio, y vuelve a tener mala suerte, ¡usará uno que tampoco pudo manejar el segundo de salto correctamente! El grupo NTP desactiva dichos servidores rápidamente, pero no instantáneamente. Y los servidores gubernamentales prominentes no son mejores. (Aunque creo que los NIST fueron esta vez.)
Matt Nordhoff
17

Los segundos de salto son manejados automáticamente por el kernel de Linux, no es necesario reiniciar ni sincronizar NTP para mantener el tiempo real. Si busca en el registro de su sistema, verá algo similar a

[263284.397894] Clock: inserting leap second 23:59:60 UTC

Como 23:59:60no es una hora válida de Linux, su reloj alcanzará 00:00:00y luego retrocederá 23:59:59. Cualquier objeto creado durante ese segundo (como archivos) puede tener una fecha inconsistente.

En lo que respecta al tiempo de Linux (en oposición al tiempo real), los segundos intercalares no existen:

# date -d "2016-12-31 23:59:59" +%s
1483225199
# date -d "2017-01-01 00:00:00" +%s
1483225200
Dmitry Grigoryev
fuente
2
Mis registros parecen confirmar esta respuesta. Recientemente ejecuté dmesg | grep 'leap second'mi máquina principal 16.04 y se mostró [1153894.866672] Clock: inserting leap second 23:59:60 UTC. Esto, sólo con diferentes números al principio, también se mostró en mi mínima 16,04 VM, instalado desde mini.iso, que utilizo para la prueba. Ese sistema mínimo no tiene ntpdcorriente, ni tampoco tiene ninguna de las ntpo openntpdlos paquetes instalados.
Eliah Kagan
2
@EliahKagan Seguramente el kernel no tiene una lista de todos los segundos bisiestos futuros codificados. El núcleo tiene la lógica para insertar el segundo intercalar, pero algo debe decirle al núcleo que se debe insertar un segundo intercalar. No conozco nada más que NTP que pueda decirle al núcleo que inserte un segundo intercalar. Tenga en cuenta que si el núcleo ya recibió instrucciones para insertar un segundo intercalar, la desinstalación de NTP sin reiniciar dejará el núcleo en un estado en el que insertará un segundo intercalar.
Kasperd 01 de
1
@kasperd Estoy de acuerdo con su razonamiento general, pero no creo que se haya instalado NTP en ese sistema, que configuré solo unos pocos (aunque más de uno) días antes. Dos posibilidades vienen a mi mente. Esta es una máquina virtual VMware, y aunque no he instalado ningún controlador VMware, creo que Ubuntu ya tiene algunos. ¿Podría tal controlador haber descubierto el segundo de salto desde la máquina host? Aparte de eso, espero que NTP estuvo involucrado durante la instalación, aunque no estoy seguro de cómo se hizo para que funcione en los reinicios. Creo que mini.isotiene NTP y que debian-installer lo usa.
Eliah Kagan el
1
@EliahKagan, no lo comprobé, pero el cliente ntp predeterminado puede ser chrony.
Carsten S
2
@CarstenS Resulta que systemd-timesyncd (8) ha estado sincronizando el reloj de mi sistema mínimo. No había pensado en esto, y lo descubrí por accidente: grep -RPis '(?<!mou)ntp' /var/logreveló estas 14 líneas de syslog , que muestran sincronizaciones de tiempo de un host que tiene ntpsu nombre. En retrospectiva, tiene sentido que el misterioso servicio que nunca supe que tenía fuera parte de systemd. (Por cierto, buen punto sobre Chrony, que tampoco había verificado; sin embargo, no está instalado.)
Eliah Kagan