Curso Gratuito Linux – Como sincronizar automáticamente la hora

Hoy vamos a aprender a sincronizar automáticamente la hora con un servidor remoto, utilizando el protocolo NTP (Network Time Protocol) para tal fin.

Mantener la hora correcta en nuestro servidor es de vital importancia, mas aún cuando estamos ejecutando un servicio crítico donde la exactitud de la hora es crucial, como puede ser, por ejemplo, un servidor de correo o de bases de datos.

Veamos como nos vamos a valer del comando ntpdate para cumplir nuestro propósito.

Vamos a iniciar nuestro equipo e ingresar con el super usuario root. Luego, instalaremos el paquete ntpdate.

ntpdate2

Para poder mostrarles como funciona, intencionalmente he modificado la fecha de mi equipo, para luego corregirla automáticamente.

Comprobamos primeramente la fecha y la hora como hemos aprendido en el post anterior.

ntpdate3

Y luego, vamos a ejecutar el comando ntpdate pool.ntp.org para sincronizar la hora.

ntpdate4

Ahora, comprobamos que tenemos la hora y la fecha del sistema sincronizada con el servidor pool.ntp.org

Como hemos aprendido, la hora de la BIOS puede que no sea la misma (y en este ejemplo no lo es) por lo que debemos sincronizarla.

ntpdate5

Ahora efectivamente, hora del sistema y de la BIOS se encuentran perfectamente sincronizadas.

Pero como hasta aquí no tenemos nada automatizado, vamos a valernos de un CRON, que no es ni más ni menos que una especie de «programador de tareas» donde vamos a decir que cada N intervalo de tiempo se ejecute esta sincronización.

La configuración de cron se realiza editando el archivo crontab. Veamos como

ntpdate6

El comando crontab -e nos va a permitir editar este archivo. Como es la primera vez que lo ejecutamos, nos va a preguntar que editor deseamos utilizar. Personalmente prefiero vim, aunque debo reconocer que nano es mucho mas sencillo.

La nomenclatura para agendar/programar una tarea es la siguiente:

.————— minuto (0-59)
| .———— hora (0-23)
| | .——— día del mes (1-31)
| | | .—— mes (1-12) o jan,feb,mar,apr,may,jun,jul… (meses en inglés)
| | | | .— día de la semana (0-6) (domingo=0 ó 7) o sun,mon,tue,wed,thu,fri,sat (días en inglés)
| | | | |
* * * * * comando a ejecutar

Veamos en nuestro ejemplo, donde vamos a decirle que a las 23:30 hs. se ejecute el comando ntpdate y luego sincronice la hora de la BIOS con la del sistema

ntpdate7

Revisando la última línea vemos que tenemos en primer lugar los minutos, luego la hora y al NO ingresar ningún valor para el día del mes, mes o día de la semana, esto implica que se va a ejecutar a diario a las 23:30 hs. Por último, el comando ntpdate con su ubicación y luego utilizando && vamos a combinar con la ejecución de la sincronización de la BIOS con la hora del sistema

Una vez finalizado el ingreso de la tarea programada, guardamos el archivontpdate8

Y vamos a comprobar nuestras tareas programadas con el comando crontab -lntpdate9

De esta manera, todos los días a las 23:30 hs nuestro sistema sincronizará la hora del sistema y de la BIOS.

Obviamente, no lo he aclarado más arriba, pero para poder acceder a pool.ntp.org hemos de tener conexión a Internet.

Hasta el próximo post y no dejen de compartir

Eduardo

 

Deja una respuesta