En la oficina tenemos un server que entrega nfs;
también tenemos mucha gente que compila cosas. Estos dos parámetros
hacen que tener sincronizadas las horas de las máquinas sea una
necesidad. Pra esto se pueden usar los paquetes
ntpdate (para on-time-sync) y ntp (para
keep-in-sync). Hoy estuve revisando bien como interactúan ambos,
sobre todo al momento del booteo. antes una descripción de qué hace
cada uno.
ntp se encarga de mantener la hora de la máquina
mas-o-menos sincronizada con la de una fuente externa. Si llega a
haber cierta diferencia, se encarga de ir acomodando la hora de a
poco, para que el sistema no sufra por cambios bruscos. Un problema
que tiene es que si la diferencia con la referencia externa es muy
grande, ntp no es capaz de salvar las diferencias y
entonces ''no hace nada''. ntpdate se encarga
simplemente de setear incondicionalmente la hora local según la
hora que consiga de esta referencia externa. El escenario ideal
sólo haría uso de ntp, pero en general se podría usar
también ntpdate para máquinas con el reloj
para-el-carajo, como parece ser el caso de al menos una de nuestra
máquinas.
El tema es que, por defecto, ntpdate utiliza un
archivo de configuración de ntp, pero a su vez corre
despúes de éste, en cuya condición falla pues el puerto UDP que usa
ya está en uso por ntp. Desinstalando ntp
nos deja sin el archivo de configuración, y en realidad tiene
sentido quedarnos con él.
La solución que encontré es simplemente hacer un symlink al
script de ntpdate en /etc/network/if-up.d
a un nombre anterior al de ntp (por ejemplo,
mntpdate). Voy a ver si en debian/ubuntu me dan pelota
con lo de ponerles mejor orden que simplemente el nombre.