yakko

pingüino mal genio
Se incorporó
24 Agosto 2004
Mensajes
16.883
No siempre se puede actualizar los paquetes de tzdata, ya sea porque el SO es muy viejo y sin soporte o simplemente porque no han pagado la licencia wns ratas!

Les dejo una pequeña solución para estos casos (probado en RHEL 5, 6, 7, 8 y 9 y en SuSE SLES 12 y 15)


Código:
#!/bin/bash
IFS=$'\n'

DIR=/tmp/tzdata-update
RHEL5=$(uname -r|grep el5)

# chequeando cambios de hora actuales
if [ -z $RHEL5 ]; then
        ZDUMP=$(zdump -v /usr/share/zoneinfo/$(timedatectl | grep "Time zone"|awk {'print $3'}) | grep $(echo $(date +%Y)))
        if [ -z "$ZDUMP" ]; then
                echo -e "\n\n**No hay cambios de hora programados para el año $(echo $(date +%Y))**"
        else
                echo -e "\n\n- Las fechas de cambio de hora de verano para este año son:\n"
                echo "$(echo "$ZDUMP")"
        fi
else
        ZDUMP=$(zdump -v /usr/share/zoneinfo/$(cat /etc/sysconfig/clock|grep ZONE|cut -d= -f2|sed -e 's|["'\'']||g') | grep $(echo $(date +%Y)))
        if [ -z "$ZDUMP" ]; then
                echo -e "\n\n**No hay cambios de hora programados para el año $(echo $(date +%Y))**"
        else
                echo -e "\n\n- Las fechas de cambio de hora de verano para este año son:\n"
                echo "$(echo "$ZDUMP")"
        fi
fi

echo -e "\n\n\n¿Desea parchar el TZDATA a la ultima versión?"
while ! [ "$OK" == "y" -o "$OK" == "n" ]; do
        read -p "(Y/N): " OK_tmp
        OK=$(echo $OK_tmp | tr '[:upper:]' '[:lower:]')
        # chequear unica entrada admitida es y/n
        if ! [ "$OK" == "y" -o "$OK" == "n" ]; then
                echo -e -n "\nPor favor entrar una respuesta válida: "
        fi
done

if [ "$OK" == "y" ]; then
        if [ -d $DIR ]; then
                rm -rf $DIR
        fi

        mkdir -p $DIR
        cd $DIR

        # descargar tzdata 2023
        curl --insecure -o $DIR/tzdata2023c.tar.gz  https://data.iana.org/time-zones/releases/tzdata2023c.tar.gz >/dev/null 2>&1

        # descomprimir
        tar xvfz $DIR/tzdata2023c.tar.gz -C $DIR/ >/dev/null 2>&1

        # compilar ultima versión para America
        zic southamerica >/dev/null 2>&1
        if [ $? -eq 0 ]; then
                echo -e "\nParchado de tzdata realizado correctamente [OK]"
                echo -e "Nuevos datos de cambio de horario:\n"
                if [ -z $RHEL5 ]; then
                        ZDUMP=$(zdump -v /usr/share/zoneinfo/$(timedatectl | grep "Time zone"|awk {'print $3'}) | grep $(echo $(date +%Y)))
                        if [ -z "$ZDUMP" ]; then
                                echo -e "\n\n**No hay cambios de hora programados para el año $(echo $(date +%Y))**"
                        else
                                echo -e "\n\n- Las nuevas fechas de cambio de hora de verano para este año son:\n"
                                echo "$(echo "$ZDUMP")"
                        fi
                else
                        ZDUMP=$(zdump -v /usr/share/zoneinfo/$(cat /etc/sysconfig/clock|grep ZONE|cut -d= -f2|sed -e 's|["'\'']||g') | grep $(echo $(date +%Y)))
                        if [ -z "$ZDUMP" ]; then
                                echo -e "\n\n**No hay cambios de hora programados para el año $(echo $(date +%Y))**"
                else
                        echo -e "\n\n- Las nuevas fechas de cambio de hora de verano para este año son:\n"
                                echo "$(echo "$ZDUMP")"
                        fi
        fi

                echo
        else
                echo -e"\nNo se pudo parchar tzdata, por favor revise manualmente\n"
        fi
        rm -rf $DIR

else
        exit 0
fi
 
Última modificación:

K3rnelpanic

non serviam
Miembro del Equipo
MOD
Se incorporó
1 Octubre 2007
Mensajes
6.065
Buena Yakko!, tantos años sin leerte jaja. Excelente aporte para los que administran(mos) plataformas re-viejas sin soporte ni niuna weá :risas
 
Upvote 0

Miguelwill

I am online
Miembro del Equipo
MOD
Se incorporó
23 Febrero 2004
Mensajes
12.402
Buena, hace muchos años me toco hacer algo así y solo le puse que bajara y actualizar nomas , sin preguntar ni nada xD
 
Upvote 0

yakko

pingüino mal genio
Se incorporó
24 Agosto 2004
Mensajes
16.883
Buena, hace muchos años me toco hacer algo así y solo le puse que bajara y actualizar nomas , sin preguntar ni nada xD
me lo pidió un amigo que no cacha mucho de linux, por eso está hecho así.
en el fondo son 3 lineas no más la parte práctica.
 
Upvote 0
Subir