it-swarm.dev

¿Cómo configurar Ubuntu para sincronizar mi reloj con un servidor horario?

Me gustaría que Ubuntu sincronice automáticamente el reloj de mi sistema con un servidor de tiempo al inicio.

Sin embargo, mi PC no está conectada a Internet hasta después de haber iniciado sesión (más 5 - 10 segundos por si acaso).

¿Cómo puedo configurarlo para hacer esto?

23
Nathan Osman

Esto se hace con NTP, para el cual instrucciones están disponibles. Básicamente, necesitará instalar un demonio NTP. Parece que hay varias opciones disponibles, pero la "estándar" está en el paquete ntp. De acuerdo con las instrucciones en la página vinculada,

Sudo apt-get install ntp

configurará todo para sincronizarse con el servidor NTP de Ubuntu.

EDIT: Me perdí "al inicio". En general, se recomienda usar ntpd para obtener una sincronización continua entre su sistema y el servidor, pero si realmente solo desea sincronizar una vez, la respuesta de mfisch parece ser lo que está buscando.

32
David Z

Si va a "Sistema-> Administración-> Hora y fecha", obtendrá una GUI para establecer la fecha/hora.

Se proporciona una opción para usar servidores de tiempo. Si lo marca y NTP no está instalado, le preguntará si desea instalarlo. Simplemente haga clic en "sí" y deje que haga su trabajo :)

9
Little Jawa

Puede hacerlo usando at y ntpdate. Probablemente ya esté instalado, pero ntpdate puede no estarlo. (apt-get install ntpdate).

Primero cree un pequeño script que ejecute ntpdate, llamémoslo update_time.sh.

#!/bin/bash
ntpdate pool.ntp.org

En su archivo .bash_login (que puede necesitar crear) agregue esto:

at -f ~/update_time.sh now + 1 minute

Eso debería hacer lo que quieras. Puede cambiar el retraso que at suele ser de 5 minutos, 10 minutos, etc.

EDITAR: Me acabo de dar cuenta de que necesitarás ser root para ejecutar ntpdate. Deberá establecer el bit SUID en el script update_time.sh que mencioné. Puede hacerlo ejecutando esto desde el comando (solo necesita ejecutarse una vez):

Sudo chmod 4711 update_time.sh
Sudo chown root update_time.sh
6
mfisch

Desde Ubuntu 16.04 timedatectl/timesyncd (que son parte de systemd) reemplazan la mayoría de ntpdate/ntp. Ver Sincronización horaria .

Es posible que deba activar la sincronización de hora con:

$ Sudo timedatectl set-ntp on

Si quieres usar chrony:

  • Si necesita una sincronización de uso único: $ chronyd -q

  • Si necesita una verificación de tiempo de una sola vez, sin configurar el tiempo, use: $ chronyd -Q

  • Para la sincronización continua, la solución recomendada es crony:

cronia (d)

La cronología del demonio NTP calcula la deriva y el desplazamiento del reloj del sistema y lo ajusta continuamente, por lo que no hay grandes correcciones que puedan generar registros inconsistentes, por ejemplo. El costo es un poco de potencia de procesamiento y memoria, pero para un servidor moderno esto generalmente es insignificante. Instalación

Para instalar chrony, ingrese desde un indicador de terminal:

$ Sudo apt install chrony

Es posible que también deba activar

Sudo timedatectl set-ntp en

Actualización: Otro método si lo anterior no funciona es establecer un trabajo cron para ejecutar $ chronyd -q

0
JBaczuk