[Script] Modificando apt-mirror para trabajar en redes con muchos problemas de conexión

FTPHola lector y/o seguidor. Si eres de los pocos cubanos que usan apt-mirror para realizar una copia del repositorio de tu distribución favorita y de casualidad tienes la mala suerte de que tu conexión es muy inestable, habrás notado en algunas ocaciones que algunos archivos no se descargan o lo realiza de forma incompleta. La raíz del asunto radica en que para gestionar la descarga de los paquetes se use wget y es en sus configuraciones de descarga donde vamos a modificar algunos parámetros para adaptarlos a nuestra realidad.

Apt-mirror es un script programado en perl para realizar una copia local casi exacta del repositorio de nuestra distribución GNU/Linux la cual preferentemente debe estar basada en Debian y sus derivados. Como script al fin hace uso de comandos y herramientas más que probadas para realizar funciones tales como descargas de arcihvos, consultas a bases de datos, mapeo de puertos, entre otras. Apt-mirror usa el paquete wget y por tanto eso funciona genial, pero – el clásico pero – en una red donde tu salida es por proxy, la conexión se “cae” constantemente y cuando medio que funciona lo hace de forma lenta – como tortuga obesa en la Luna – pues hay que realizarle ciertos retoques al código.

Lo primero es que cubano que se respete se conecta mediante proxy (los otros no son cubanos, son cubanos + ) así que una vez instalado apt-mirror debemos dejarle bien claro que lo use:

/etc/apt/mirror.list

set use_proxy on
set http_proxy http://proxy_tu_red_cu:puerto_del_proxy

Ahora vamos a modificar el script para que cambie el parámetro de wget de números de intentos que por defecto viene con 5 por el valor inf que litealmente significa “infinito”, o sea para que realice la descarga en 1 millón de intentos si es necesario 😉

/usr/bin/apt-mirror

## Antes
exec 'wget', '--no-cache', '--limit-rate=' . get_variable("limit_rate"), '-t', '5', '-r', '-N', '-l', 'inf', '-o', get_variable("var_path") . "/$stage-log.$i", '-i', get_variable("var_path") . "/$stage-urls.$i", @args;

## Después
exec 'wget', '--no-cache', '--limit-rate=' . get_variable("limit_rate"), '-t', 'inf', '-r', '-N', '-l', 'inf', '-o', get_variable("var_path") . "/$stage-log.$i", '-i', get_variable("var_path") . "/$stage-urls.$i", @args;

Y ya terminamos. Nada que de vez en cuando estas cubanizaciones de las herramientas pensadas para el mundo solo dependen de un poquito de conocimiento y algunas pasaderas de trabajo.



Comments are closed.

This entry was posted on Mar Abr 25, 2017 and is filed under Artículos. Written by: . You can follow any responses to this entry through the RSS 2.0 feed. Both comments and pings are currently closed.