6 de abril de 2008

A propósito del cambio de horario y Solaris.

Hace unos días me encontré con que alguno de los servidores Solaris no lograban hacer el cambio de horario. Al parecer no tenía que ver con la versión puesto que uno de ellos fue un Solaris 10, otro un solaris 8.

Definitivamente tenía algo que ver con el manejo de la zona horaria del sistema operativo, por lo que me di a la tarea de investigar al respecto.
Al poco rato encontré que el archivo en donde se define la zona horaria en Solaris es /etc/default/init, dentro de él viene una línea que tiene la siguiente forma:

TZ=America/Mexico_City

Básicamente se define una variable llam ada TZ o Time Zone. En este caso se define la zona horaria de la ciudad de México.

Estos datos concordaban con los archivos de configuración de los servidores, por tanto, la siguiente opción es hacer una actualización de la base de datos que controla los cambios horarios.

Esta base se puede descargar de
ftp://elsie.nci.nih.gov/pub/
En este caso, la versión más actual que hallé fue tzdata2008b.tar.gz

El procedimiento para actualizar es verdaderamente sencillo:

1. Subir al servidor el archivo adjunto tzdata2008b.tar.gz

2. Descomprimir la base
> mkdir tzdata
> mv tzdata2008b.tar.gz tzdata/
> gunzip tzdata2008b.tar.gz
> tar xf tzdata2008b.tar

A partir de aquí se necesitan los permisos de super usuario.

3. Compilar la zona horaria para América del Norte

> zic northamerica

Esto creará nuevos archivos de definiciones para las ciudades más importates de América del Norte.

/usr/share/zoneinfo/America/

4. Modificar el archivo /etc/default/init, verificar que la entrada para la variable TZ sea:
TZ=America/Mexico_City

De lo contrario, cambiarla. Es porsible qu enecesite cambiarle los permisos al archivo para permitir la escritura en él.

5. Reiniciar el servidor
sudo shutdown -y -i 6

6. Al regresar el servidor verificar la hora y en su caso ajústela.


Después de llevar a cabo este pequeño procedimiento en mis servidores no he tenido problemas con los cambios de horario y demás.