- 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)
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: