Saludos nuevamente.
En un post anterior les hablé sobre Debmirror, una de las herramientas que utilizamos para la creación repositorios locales de distribuciones y/o aplicaciones GNU/Linux basados en la paquetería DEB.
Hoy vengo con un TIP que implementé hoy en el caso de las descargas de las ramas backports de los repositorios de Debian.
Resulta que la descarga del Debian Jessie Backport supera los 5 GB y la de Debian Wheezy Backport los 12 GB (¿se acuerdan de que mi AB es de sólo 256 KBps (32 KB/s)?). Bien, la cosa es que muchos de esos archivos son paquetes que contienen la cadena -dbg en su nombre. Estos paquetes contienen los símbolos de depuración (debug) sobre el funcionamiento (o mal funcionamiento) de los programas, los cuales son de utilidad si somos programadores y/o betatesters; en caso contrario, pues, no nos son necesarios.
Entonces, en mi caso -no porque no sea programador o betatester- esos archivos no me son necesarios, así que para aligerar un poco la descarga de paquetes en pos de crear mi copia local de los repositorios antes mencionados con lo que me hace falta solamente voy a excluir de la misma los archvos de debug (los que contienen la cadena «-dbg» en su nombre).
El script, para el caso del Debian Jessie Backports quedaría así:
#!/bin/sh
# Version: 1.0.2
# Programador: Lic. Hector Suarez Planas
# Cargo: Administrador, Nodo CODESA – Grupo Empresarial de la Construccion
# Santiago de Cuba
#
# Script para sincronizar la Rama Backports del Repositorio de Debian 8.0
# en Internet.
#
# NOTA: Este script es una modificacion del script original proporcionado
# por los Administradores de Infomed.
#
# Control de cambios:
#
# 20/11/2015: Se excluye los archivos de debug de la compilacion de los
# paquetes DEB porque son excesivamente grandes y no son
# realmente necesarios (cambio de numero de version a la
# 1.0.2)
#
# Mirror host
FROM=debian.netcologne.de
# Archive location
TO=/srv/distros/debian-jessie-backports
# —–
DATE=$(date «+%Y-%m-%d»)
DATE_FILENAME=$(date «+%Y-%m-%d__%H.%M.%S»)
DATE_LOGHEADER=$(date «+%d %b %Y – %H:%M:%S»)
BASELOGDIR=/var/log/repos
LOGDIR=$BASELOGDIR/$DATE
LOGFILE=debian-jessie-backports_sync-$DATE_FILENAME.log
TARGETLOG=$LOGDIR/$LOGFILE
# Si no existe el directorio base, crearlo y asignarle
# permisos
[ -d $BASELOGDIR ] || mkdir -p $BASELOGDIR
# Si no existe el directorio, crearlo y asignarle
# permisos
[ -d $LOGDIR ] || mkdir -p $LOGDIR
# Si no existe el archivo, crearlo y asignarle
# permisos
[ -f $TARGETLOG ] || touch $TARGETLOG
chown -R root.root $BASELOGDIR/
chmod 750 $(find $BASELOGDIR -type d)
chmod 640 $(find $BASELOGDIR -type f)
echo «———————————————» >> $TARGETLOG
echo » Registro de eventos de sincronizacion de la » >> $TARGETLOG
echo » rama Backports del Repositorio de » >> $TARGETLOG
echo » Debian 8.0 (Jessie)» >> $TARGETLOG
echo «» >> $TARGETLOG
echo » $DATE_LOGHEADER» >> $TARGETLOG
echo «———————————————» >> $TARGETLOG
echo «» >> $TARGETLOG
# Delete temp folder first
rm -rf $TO/.temp/
# Main archive
debmirror \
–passive \
–progress \
–verbose \
–host=$FROM \
–root=debian \
–dist=jessie-backports \
–section=main,contrib,non-free \
–arch=i386,amd64 \
–timeout=1600 \
–method=http \
–cleanup \
–nosource \
–ignore-small-errors \
–diff=none \
–exclude=-dbg \
$TO >> $TARGETLOG 2>&1
Con este cambio, ya no tengo que descargar tanto volumen de información, miren los valores siguientes:
- Debian Jessie Backports: Antes 5.7 GB, ahora aproximadamente 2.5 GB
- Debian Wheezy Backports: Antes 12.4 GB, ahora aproximadamente 5.6 GB
Aún así es bastante lo que tengo que descargar, así que sigue cumpliéndose el famoso dicho cubano de que «Con mucha paciencia y…».
🙂




Te comento para felicitarte por el trabajo que estas haciendo en tu blog y la ayuda que les etás dando (desde mi punto de vista) a los admin de red que en su empresa todavía no tienen acceso a internet.
Saludos desde Camaguey.
Saludos, Adrián.
Muchísimas gracias por tu comentario, es una prueba de que el objetivo por el cual decidí crear este blog en CubaVa.CU se está cumpliendo a cabalidad.
😀
pues si para mi uno de los mejores blog de redes de la red nacional
Saludos, Chamaco.
Oye, hace rato que no te veo. ¿Donde te metes? Cuando vas para LTU te pierdes del radar, jejejeje.
Gracias por tu comentario.
off topic : Jaja na aqui en la DPS tu sabes pinchando jajajaj ya tienes 11084 visitas jejejeej
Saludos, hermano.
¿Ya te llevaron para la DPS? Veo que actuaron rápido, no pierden tiempo.
Con respecto al blog, sí, ya son unas cuantas visitas. Hoy tengo pensado poner dos artículos de los temas que ya he completado en el manual. El borrador ya va por 79 páginas y creciendo.
😀
Pues seguro padrino jejej dentro de poco te voy a enviar un post para que lo pongas en el blog sobre varnish jejejeje deja que veas lo que tengo
…
Jejejejeje, te veo hecho un contributor, eso es bueno. Sólo te voy a decir lo que siempre te digo: impresióname. 😀
Saludo Hector, me das una idea, en el caso de Ubuntu Bionic cuales serían las lineas a modicar, quiero llevarme para la casa un repo en mi disco externo y no logro modificar el script para copiar el repo de Ubuntu de mi empresa.
Saludos y excelente labor amigo
Saludos, Luis.
Primero que todo, gracias por su comentario.
Bueno, decirle que ahora mis script son más pequeños gracias a las sugerencias de un colega. Aparte de eso, le he añadido algunas cosillas. Acá lo tiene:
#!/bin/bash
# Version: 1.0.4
# Programador: Lic. Hector Suarez Planas
# Cargo: Administrador, Nodo Telecentro Tele Turquino de Santiago de Cuba
#
# Script para sincronizar el Repositorio de Ubuntu 16.04 (Xenial) ubicado
# en Internet
#
# NOTA: Este script es una modificacion del script original proporcionado
# por los Administradores de Infomed.
#
# Control de cambios:
#
# 01/02/2017: Cambio del origen de donde se descargaran los repositorios
# de paquetes DEB de Ubuntu debido a que en el repo ubicado
# en el FTP del ICRT le faltan archivos (cambio de numero de
# version a la 1.0.1)
#
# 05/05/2017: Cambio del origen de donde se descargaran los repositorios
# de paquetes DEB de Ubuntu debido a que en el repo ubicado
# en la Universidad del Estado de Oregon en EE.UU. me esta
# dando un comportamiento inestable (cambio de numero de
# version a la 1.0.2)
#
# 12/02/2018: Limpieza por Hugo (cambio de numero de version a la 1.0.3)
#
# 07/11/2018: Adicion de la notificacion via correo electronico al buzon del
# Administrador de la Red (cambio de numero de version a la 1.0.4)
#
# Mirror host
FROM=mirror.math.princeton.edu
# Archive location
TO=/srv/datos/linux/distros/ubuntu
# -----
DATE=$(date "+%Y-%m-%d")
DATE_FILENAME=$(date "+%Y-%m-%d__%H.%M.%S")
DATE_LOGHEADER=$(date "+%d %b %Y - %H:%M:%S")
BASELOGDIR=/var/log/repos
LOGDIR=$BASELOGDIR/$DATE
LOGFILE=$LOGDIR/ubuntu_sync-$DATE_FILENAME.log
# Establecer mascara de permisos
umask 0077
# Crear directorios y archivos de registros en caso de que no existan
mkdir -p $LOGDIR
touch $LOGFILE
echo "---------------------------------------------" >> $LOGFILE
echo " Registro de eventos de sincronizacion de la " >> $LOGFILE
echo " rama Security del Repositorio de Ubuntu " >> $LOGFILE
echo "" >> $LOGFILE
echo " $DATE_LOGHEADER" >> $LOGFILE
echo "---------------------------------------------" >> $LOGFILE
echo "" >> $LOGFILE
# Delete temp folder first
rm -rf $TO/.temp/
# Main archive
debmirror \
--passive \
--progress \
--verbose \
--host=$FROM \
--root=pub/ubuntu \
--dist=xenial,xenial-backports,xenial-proposed,xenial-security,xenial-updates \
--section=main,restricted,universe,multiverse \
--arch=i386,amd64 \
--i18n \
--exclude='-dbg_' \
--exclude='-dbgsym_' \
--include='/Translation-es.*\.bz2$' \
--include='/Translation-es.*\.gz$' \
--include='/Translation-en.*\.bz2$' \
--include='/Translation-en.*\.gz$' \
--exclude='/Translation-.*\.bz2$'\
--exclude='/Translation-.*\.bz$'\
--exclude='/Translation-.*\.gz$'\
--exclude='/Translation-.*\.xz$'\
--timeout=1600 \
--method=http \
--cleanup \
--nosource \
--ignore-small-errors \
--diff=none \
--proxy=http://usuario:contraseña@proxy:puerto/ \
--rsync-extra=none \
$TO >> $LOGFILE 2>&1
# Send notification mail
SENDTO="usuario@dominio.cu"
SUBJECT="Registro de eventos de sincronizacion del Repositorio de Ubuntu"
SUCCESS_MESSAGE="La replica local del Repositorio de Ubuntu fue sincronizada exitosamente."
FAIL_MESSAGE="La replica local del Repositorio de Ubuntu tuvo un fallo en la sincronizacion, por favor, chequear la causa."
# Send mail to admin
if grep -q "Everything OK" $LOGFILE; then
mail -v -s "$SUBJECT" "$SENDTO" <<< "$SUCCESS_MESSAGE";
else
mail -v -s "$SUBJECT" "$SENDTO" <<< "$FAIL_MESSAGE";
fi
De ahí es solamente cambiar a xenial por bionic. Ah, en caso de no usar proxy, pues, es eliminar la línea correspondiente.
🙂