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.
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.
Y luego, vamos a ejecutar el comando ntpdate pool.ntp.org para sincronizar la hora.
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.
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
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
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 archivo
Y vamos a comprobar nuestras tareas programadas con el comando crontab -l
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