ntpdate es una herramienta Linux que nos permite configurar la fecha y la hora local de la máquina con un servidor NTP que especifiquemos. Esto mismo se puede hacer en modo comando con ntpd.
ntpdate actualiza el reloj de la máquina local independientemente de la validez de la hora que sirva el servidor. Dicha actualización se puede realizar en el acto o no, dependiendo de la diferencia horaria entre el host y el servidor NTP o de ciertas opciones especificadas.
ntpdate funciona de dos maneras. Por un lado si el la diferencia de hora entre él y el servidor NTP es de más de 0,5 segundos se hace una llamada al sistema de tipo settimeofday(). Si la diferencia es menor de 0,5 segundos se sobrescribe el tiempo mediante una llamada al sistema de tipo adjtime(). Esta última técnica es menos abrupta y más exacta cuando el error es pequeño, y funciona bastante bien cuando ntpdate es ejecutada por cron cada una o dos horas.
ntpdate sin argumento muestra la hora local, el día y el mes:
# ntpdate 30 Jan 05:32:18 ntpdate[6263]: no servers can be used, exiting
Sintaxis:
ntpdate [opciones] [servidor 1] [servidor 2]… [servidor n]
Vemos que le podemos indicar un orden de preferencia de servidores para la sincronización.
Las opciones pueden ser:
[-46bBdqsuv] [-a key#] [-e delay] [-k file] [-p samples] [-o version#] [-t timeout] [-U username]
Veamos las opciones:
-4 | Fuerza resolución DNS basada en IPV4. |
-6 | Fuerza resolución DNS basada en IPV6.
|
-b | Fuerza una sincronización de tipo “tendente” utilizando la llamada adjtime(), incluso si la diferencia horaria es mayor de 0,5 seg. Se debe tener en cuenta que si la diferencia es mucho mayor de 0,5 seg. se puede tardar mucho tiempo (horas) para el reloj se ajuste al valor correcto. |
-B | Fuerza el tiempo usando la llamada settimeofday () en lugar del modo por defecto “tendente” de la llamada adjtime (). Esta opción debe utilizarse cuando se llama desde un archivo de inicio en el arranque.
|
-d | Habilita el modo debugging. |
-q | Sólo query, no configura el reloj. |
-s | Desvío del logging de salida desde la salida estándar hacia el syslog. Útil para el uso de ntpdate bajo cron.
|
-u | Dirige ntpdate a utilizar un puerto sin privilegios o paquetes salientes. útil ciuando estamos detrás de un firewall que bloquea los paquetes entrantes hacia puertos privilegiados.
|
-v | Modo verbose. |
-a key# | Habilita autenticación especificando una clave. los archivos de claves deben coincidir en servidor y cliente.
|
-e delay | Especifica el retardo de proceso en la función de autentificación. |
-k file | Path al archivo de autentificación. |
-p samples | Especifica el número de muestras que se deben obtener de cada servidor, por defecto 4 (valores posibles de 1 a 8).
|
-o version# | Especifica la versión NTP de las peticiones NTP. Por defecto 3 (pueden ser 1 ó 2).
|
-t timeout | Tiempo máximo de espera a la respuesta de un servidor en segundos o fracciones de segundos (por defecto 1 segundo). Las fracciones son redondeadas a múltiplos de 2.
|
-U username | El proceso de ntpdate sobrescribe los privilegios de root y usa el usuario especificado.
|
Ejemplos:
[root@localhost ~]# ntpdate 192.168.3.201
4 Jan 02:55:25 ntpdate[7060]: adjust time server 192.168.3.201 offset -0.004647 sec
[root@localhost ~]#
Nota: Lo mismo que hace ntpdate se puede hacer con ntpd ejecutándolo en modo no demonio con la opción –q. Es previsible un abandono progresivo de ntpdate.