viernes, 6 de marzo de 2015

Extensión de Horario de verano Chile 2015 en RHEL/CentOS




Oficialmente el cambio de horario de verano en chile debería ocurrir el 25 de abril de 2015, pero el gobierno decidió  mantener el horario de verano como definitivo  (ver Anuncio: Se suspende indefinidamente el cambio de hora)

Todo bien hasta aquí, el problema es que en los servidores se debe cambiar esta  configuración, lo que técnicamente no es difícil de resolver, pero logísticamente tiene un costo, hay que invertir tiempo para hacer el cambio.
En linux existe un paquete llamado tzdata que controla estos cambios de horario, lo que debemos hacer es actualizar este paquete con la nueva información.
En RHEL/CentOS ya esta disponible la última versión de tzdata que corrije este cambio es

 tzdata-2015a-1.el5

Para ver que datos de cambio contiene usamos el comando

#zdump -v America/Santiago | grep 2015
America/Santiago  Sun Apr 26 02:59:59 2015 UTC = Sat Apr 25 23:59:59 2015 CLST isdst=1 gmtoff=-10800
America/Santiago  Sun Apr 26 03:00:00 2015 UTC = Sat Apr 25 23:00:00 2015 CLT isdst=0 gmtoff=-14400
America/Santiago  Sun Sep  6 03:59:59 2015 UTC = Sat Sep  5 23:59:59 2015 CLT isdst=0 gmtoff=-14400
America/Santiago  Sun Sep  6 04:00:00 2015 UTC = Sun Sep  6 01:00:00 2015 CLST isdst=1 gmtoff=-10800


Para ver la versión instalada

# rpm -qa |grep tzdata
tzdata-java-2011g-1.el6.noarch
tzdata-2013b-1.el6.noarch


Para actualizar a la última versión ejecutar

#yum update tzdata

luego revisar el cambio:

# rpm -qa |grep tzdata
tzdata-java-2012j-1.el5
tzdata-2015a-1.el5



#zdump -v America/Santiago | grep 2015
America/Santiago  Sun Apr 26 02:59:59 2015 UTC = Sat Apr 25 23:59:59 2015 CLST isdst=1 gmtoff=-10800
America/Santiago  Sun Apr 26 03:00:00 2015 UTC = Sun Apr 26 00:00:00 2015 CLT isdst=0 gmtoff=-10800


Verificar que la variable gtmoff=10800 valor en segundos que expresado en horas son 3, que es el valor esperado.


Fuente de información

 http://www.gob.cl/2015/01/28/ministerio-de-energia-da-conocer-modificaciones-al-cambio-de-hora-en-chile-continental-e-insular/
https://access.redhat.com/solutions/1348493
https://rhn.redhat.com/errata/RHEA-2015-0141.html
http://lists.centos.org/pipermail/centos-announce/2015-February/020925.html

Descargar paquete CentOS

CentOS 5:

i386  http://mirror.centos.org/centos/5/updates/i386/RPMS/tzdata-2015a-1.el5.i386.rpm

x86_64  http://mirror.centos.org/centos/5/updates/x86_64/RPMS/tzdata-2015a-1.el5.x86_64.rpm

CentOS 6:

i386 http://mirror.centos.org/centos/6/updates/i386/Packages/tzdata-2015a-1.el6.noarch.rpm

x86_64 http://mirror.centos.org/centos/6/updates/x86_64/Packages/tzdata-2015a-1.el6.noarch.rpm

CentOS 7:

x86_64 http://mirror.centos.org/centos/7/updates/x86_64/Packages/tzdata-2015a-1.el7_0.noarch.rpm


En ubuntu

Verificar la versión de tzdata con:

# dpkg -l |grep tzdata
ii  tzdata                                                2015a-0ubuntu0.14.04                                all          time zone and daylight-saving time data


En caso de estar desactualizada ejecutar:

 # apt-get install tzdata

y verificar:

 #zdump -v America/Santiago | grep 2015
America/Santiago  Sun Apr 26 02:59:59 2015 UT = Sat Apr 25 23:59:59 2015 CLST isdst=1 gmtoff=-10800
America/Santiago  Sun Apr 26 03:00:00 2015 UT = Sun Apr 26 00:00:00 2015 CLT isdst=0 gmtoff=-10800







11 comentarios:

Unknown dijo...

muchas gracias amigo. muy util. que estes bien.

edoherrera dijo...

Benjamín
Excelente que sea útil, un abrazo.

Enrique Araneda dijo...

como lo hago con un solaris amigo?

edoherrera dijo...

Hola Enrique
Tengo entendido que oracle ya dispone de un parche, por lo que podrías abrir un caso y pedirlo, ahora en caso de no tener contrato de mantención, podrías intentar bajando el rpm source, extraer el archivo southamerica y compilarlo usando el comando "zic".
#zic southamerica
luego con zdump comprobar que la diferencia sea de tres horas.
Saludos

Anónimo dijo...

hola, tengo una duda. Me gustaria saber la diferencia entre el parche que comienza con tzdata y el que comienza con tzdata-java. Agradezco la explicación.

edoherrera dijo...

Hola la diferencia es que el tzdata es para aplicar al sistema, y el tzdata aplica sobre java, java no usa el timezone de la máquina. Si tu servidor no usa java no lo necesitas.

Saludos

Anónimo dijo...

muchas gracias, información super últil.

Enrique Araneda dijo...

Edo, quedé con una duda sobre lo que mencionas con lo de Java, tengo una aplicación que está en java y los logs que arroja los comenzó a escribir con una hora menos, siendo que tengo instalado los tzdata correspondietes, la hora del sistema y del hardware están correctos, solo es esta aplicación la que me dió problemas...

ShineOn dijo...

Hola, me funcionó pero me gatilló un problema: Los cron se ejecutan una hora después de lo especificado en el /etc/crontab
y eso que la fecha corresponde:
Ejemplo
%] date
Wed May 13 10:36:30 CLT 2015

Así que para ejecutar a la hora correcta, tengo que poner en el cron la hora anterior... es decir, para que se ejcute a las 10:36 debiera poner:
36 9 * * * root /root/prueba.sh

edoherrera dijo...

Hola
Ocurre que algunos servicios toman el so horario al subir, como es el caso de crond, snmpd y otros.

Para resolver esto se debe reiniciar el servicio crond
/etc/init.d/crond

Saludos

ShineOn dijo...

Muchas Gracias Eduardo, efectivamente había encontrado justo lo de reiniciar el servicio del cron y funcionó...
Muchas Gracias de nuevo