Mirror de Ubuntu mediante debmirror

Mirror de Ubuntu mediante debmirror

Al trabajar en una empresa es muy importante mantener nuestros servidores actualizados al día, y si bien esto es importante también debemos pensar como disminuir el tráfico hacia internet en busca de nuevas actualizaciones. Para ello podemos realizar una copia espejo del repositorio mediante la herramienta debmirror.

Rsync puede crear un espejo completo de un sitio y selecciona archivos indiscriminadamente. Debmirror, sin embargo, permite un mejor control sobre qué paquetes se duplican y puede ser más fácil en cuanto a la cantidad de espacio en el disco duro requerido.

Instalar Debmirror:

sudo apt update
sudo apt install debmirror

Una vez instalado pasamos a la creación de los directorios necesarios. Haremos nuestro espejo en /opt/ con:

sudo mkdir /opt/mirrorubuntu/

Creamos el archivo mirrorbuild.sh

sudo touch /opt/mirrorubuntu/mirrorbuild.sh

Ya podemos comenzar con la configuración de nuestro script.

#!/bin/bash
# Arquitectura a descargar.
arch=amd64,i386

# Secciones a descargar.
section=main,restricted,universe,multiverse

# Releases del sistema.
release=focal,focal-security,focal-updates,focal-backports

# El protocolo usado para la transferencia (http, ftp, hftp, rsync).
proto=http

# Direccion principal del servidor.
server=es.archive.ubuntu.com

# Ruta a partir de la direccion principal.
inPath=ubuntu

# Directorio donde se almacenara el repositorio
outPath=/opt/mirrorubuntu/

#
debmirror       -a $arch \
                --no-source \
                --progress \
                --verbose \
                --ignore-release-gpg \
				--i18n \
                -s $section \
                -h $server \
                -d $release \
                -r $inPath \
                -e $proto \
                $outPath


# pull in all the Release.gz etc. stuff
for i in `echo $release | sed s/\,/\ /g`
do
     rsync -avrt --delete rsync://es.archive.ubuntu.com/ubuntu/dists/$i $outPath/dists
done

# fix Translation files
cd $outPath/dists
for i in `find ./ -iname Translation-en.gz`
    do nn=`echo $i | sed s/\.gz//g`
    zcat $i > $nn
done

Agregue un cronjob para mantener el mirror actualizado.

sudo crontab -e

Y ahora añade la siguiente línea:

22 2 * * * /opt/mirrorubuntu/mirrorbuild.sh

¡Listo! Ya tiene todo preparado para comenzar la descarga del mirror a las 2:22A.M.

Espero les pueda ser de ayuda como lo ha sido para mí. See you later!

Comentarios

Aún no hay comentarios. ¿Por qué no comienzas el debate?

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *