martes, 8 de marzo de 2011

Postergación cambio de horario de verano en Chile y sus efectos en RHEL y CentOS


UPDATE 3: Extrañamente ubuntu aún no tiene actualización al cambio, aquí anexo como hacerlo de manera manual:
#zic ~edoherrera/Escritorio/southamerica
#zic ~edoherrera/Escritorio/backward
#zdump -v /etc/localtime |grep 2011
#cp /usr/share/zoneinfo/America/Santiago /etc/localtime
# zdump -v /etc/localtime |grep 2011
/etc/localtime  Sun May  8 02:59:59 2011 UTC = Sat May  7 23:59:59 2011 CLST isdst=1 gmtoff=-10800
/etc/localtime  Sun May  8 03:00:00 2011 UTC = Sat May  7 23:00:00 2011 CLT isdst=0 gmtoff=-14400
/etc/localtime  Sun Aug 21 03:59:59 2011 UTC = Sat Aug 20 23:59:59 2011 CLT isdst=0 gmtoff=-14400
/etc/localtime  Sun Aug 21 04:00:00 2011 UTC = Sun Aug 21 01:00:00 2011 CLST isdst=1 gmtoff=-10800

Los archivos southamerica y backward pueden ser descarcados desde aquí. Este método también es aplicable a FreeBSD.

UPDATE 2: Red Hat ya tiene disponible una actualización para el cambio 7 de mayo/20 de Agosto, es el rpm tzdata-2011d-3.
En RHEL 5
#yum update tzdata
En RHEL 4
#up2date -u tzdata
En CentOS aún no veo actualización pero es posible descargar desde http://people.redhat.com/pmachata/tzdata-2011d/

UPDATE 1: Nuevamente el gobierno ha decidido postergar el cambio de horario de verano al de invierno, ahora será el 7 de mayo. Si bien ha esta hora ningún sitio lo ha oficializado, ya fue comunicado a los medios http://www.cooperativa.cl/gobierno-pospondra-cambio-de-hora-hasta-el-7-de-mayo-proximo/prontus_nots/2011-03-28/074750.html


Oficialmente el cambio de horario de verano en chile debería ocurrir el 12 de marzo de 2011, pero el gobierno decidió aplazar este cambio para el 2 de abril (ver http://www.gob.cl/informa/2011/03/02/horario-de-verano-se-extendera-por-tres-semanas.htm)
Todo bien hasta aquí, el problema es que en los servidores deben cambiarse estos valores, 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.
Para ver que datos de cambio contiene usamos el comando

# zdump -v -c 2010,2012 America/Santiago
...

America/Santiago Sun Mar 13 02:59:59 2011 UTC = Sat Mar 12 23:59:59 2011 CLST isdst=1 gmtoff=-10800

America/Santiago Sun Mar 13 03:00:00 2011 UTC = Sat Mar 12 23:00:00 2011 CLT isdst=0 gmtoff=-14400

Para arreglar este cambio, en RHEL o CentOS se debe decargar el fuente del rpm tzdata como por ejemplo tzdata-2010o-1.el5.src.rpm, luego instalar el fuente

#rpm -ivh tzdata-2010o-1.el5.src.rpm

Parchar el archivo southamerica que se puede encontrar en https://bugzilla.redhat.com/show_bug.cgi?id=681594
y volver a generar un rpm con:

#rpmbuild -ba tzdata.spec

y luego reemplazar el rpm .
Para comprobar el cambio usar:
zdump -v -c 2011,2012 America/Santiago
...
America/Santiago Sun Apr 3 02:59:59 2011 UTC = Sat Apr 2 23:59:59 2011 CLST isdst=1 gmtoff=-10800

America/Santiago Sun Apr 3 03:00:00 2011 UTC = Sat Apr 2 23:00:00 2011 CLT isdst=0 gmtoff=-14400

Hacer esto antes del 12 de marzo.

14 comentarios:

DarkTux dijo...

Estimado, segun anuncios y noticias, este cambio se volvio a aplazar hasta el 7 de Mayo.

de que forma se puede actualizar el parche?.

edoherrera dijo...

Hola DarkTux

Si, en la mañana me informé del cambio :S, cero análisis de logística, pero en fin ese es otro tema.

Busca en el archivo southamerica
#grep Rule /home/edoherrera/Escritorio/southamerica |grep Chile |grep 2011
Rule Chile 2011 only - Apr 3 3:00u 0 -


y modificar donde dice abril 3 por mayo 7 , y volver a generar un tzdata.

Aún no hago un parche del tzdata, mas tarde actualizaré la entrada.

Lo otro que te puede servir es usar el comando zic
zic ~edoherrera/southamerica
con el archivo modificado

Saludos

Anónimo dijo...

Estimado, vi esta web y me intereso, ya que tengo que cambiar varios equipos linux redhat para el cambio del 7 de mayo, modifique el archivo southamerica, tal como tu dices, lo resivo:
orion:tzdata# zdump -v America/Santiago | grep 2011
America/Santiago Sun May 8 02:59:59 2011 UTC = Sat May 7 23:59:59 2011 CLST isdst=1 gmtoff=-10800
America/Santiago Sun May 8 03:00:00 2011 UTC = Sat May 7 23:00:00 2011 CLT isdst=0 gmtoff=-14400
America/Santiago Sun Oct 9 03:59:59 2011 UTC = Sat Oct 8 23:59:59 2011 CLT isdst=0 gmtoff=-14400
America/Santiago Sun Oct 9 04:00:00 2011 UTC = Sun Oct 9 01:00:00 2011 CLST isdst=1 gmtoff=-10800
pero al simular un cambio de hora en linux, le modifico la fecha a: 02/04/2011 23:59, pero igual me cambia la hora (me retrocede a 23:00). Agradeceria me pudieran decir que estoy haciendo mal o me dijeran en donde puedo bajar el tzdata actualizado a mayo. gracias.

edoherrera dijo...

Hola Anónimo

Pero que aplicaste? hiciste un nuevo rpm o con zic??


Saludos

Anónimo dijo...

Hola edoherrera, lo compile con cuenta root de la siguiente forma:
zic southamerica

edoherrera dijo...

Falta aplicar otra cosa,que en el post anterior olvidé :s

Debes crear un archivo llamado backward con lo siguiente: (no incluyas las líneas inicio y fin:
OJO Elimina los espacios en < pre > que el sistema lo tomó como etiqueta html y no me dejaba postearlo

---------------- INICIO ------------
# < pre >
# @(#)backward 8.9
# This file is in the public domain, so clarified as of
# 2009-05-17 by Arthur David Olson.

# This file provides links between current names for time zones
# and their old names. Many names changed in late 1993.

Link America/Santiago Chile/Continental
--------------- FIN ----------------

entonces aplicas los dos comandos:

zic ~edoherrera/southamerica
zic ~edoherrera/southamerica

prueba y dime como te va, así lo agrego en la próxima entrada, en el cambio anterior apliqué ese método en unos FreeBSD y funcionó OK.

saludos

Anónimo dijo...

Revise en archivo backward y estaba incluído el Link America/Santiago Chile/Continental
volvi a compilar y lo vuelvo a probar con fecha 02-04-11 23:59 y me retrocede a 23:00. La verdad que estoy complicado, porque tengo que modificar 10 serv. linux. A lo mejor es problema de "Interface" jaja, tu no vas a subir algún tzdata para descargar y probar ? Si es asi, te lo agradecería bastante. Gracias de antemano.

edoherrera dijo...

Ok hoy debo trabajar eso, así que subiré uno.

Saludos

Anónimo dijo...

Estimado, ya me funciono. Me faltaba copiar el localtime generado y reemplazarlo en el /etc y simule 2011-04-02 23:59 y continuo al día domingo sin retrasar la hora.Gracias

edoherrera dijo...

Anónimo
HAy un detalle importante que no mencioné en el archivo southamerica debes poner la fecha may 8 .

saludos

Unknown dijo...

Buenas... soy nuevo en Ubuntu y me llamo la atención esto del cambio de hora pospuesto (que supuestamente debio haber sido hace media hora atras). Automaticamente Ubuntu me retrazo la hora (desconozco porque, siendo que oficialmente era el 12 de marzo), pero en fin, le puse manualmente no ma k eran las 00.00 horas. Pero, ahora que veo tu publicacion puedo configurarlo a traves del Terminal. Deseo saber como, si hay que bajar algo, no se... por favor, explicame paso a paso XD
Desde ya, muchas gracias ;)

edoherrera dijo...

Hola
ubuntu extrañamente aun no saca u parche para tzdata, por lo que hay que compilar a mano
se deben cargar dos archivos el southamerica y backward,y luego actualizar el localtime

#zic ~edoherrera/Escritorio/southamerica
#zic ~edoherrera/Escritorio/backward
#zdump -v /etc/localtime |grep 2011
#cp /usr/share/zoneinfo/America/Santiago /etc/localtime
zdump -v /etc/localtime |grep 2011

Lo que no tengo es donde subir estos dos archivos :s , si tienes donde te los puedo enviar y asi publicarlos.

Saludos

edoherrera dijo...

Ricardo
Me sirvió para aprender a subir archivos en google :)
Lso archivos quedaron en https://sites.google.com/site/edoherrera/archivos

Actualizaré esto en la entrada

Saludos

Anónimo dijo...

edoherrera, Si puse mayo 8 y me funciono bién en todos los servidores. gracias por el apoyo