sudo: Jack of all trades, master of some

Crear mirror de repositorio de Arch Linux con rsync

5 comentarios

La estructura del repositorio oficial de Arch Linux, así como sus mirrors es un tanto diferente de las demás distribuciones y siempre recomiendan usar los repositorios online y no locales. En nuestro caso, la situación es un poco más difícil por las características de la conexión a Internet con que cuenta el país y el poco ancho de banda que poseen las empresas en general.

Este script sincroniza un mirror remoto (desde los servicios de Joven Club) con uno local a través de rsync.

#! /bin/bash

MIRROR="archlinux"
ORIGEN="rsync://descargar.jovenclub.cu/repos/archlinux"
DESTINO="/var/ftp/archlinux"
REPOSITORIOS="core extra community multilib"
OPCIONES="-rltvHP --chmod=Du=rwx,Dgo=rx,Fu=rw,Fgo=r --exclude=.* --delete-after --delete-excluded --delay-updates --max-delete=1000"
PID="/var/run/${MIRROR}.pid"

if [ -e "${PID}" ]
then
        echo "$(cat ${PID}) existe"
        exit 1
fi

echo $$ > ${PID}

for REPOSITORIO in ${REPOSITORIOS}
do
        rsync ${OPCIONES} ${ORIGEN}/${REPOSITORIO} ${DESTINO}
done

rm -f ${PID}

exit 0

Si queremos un mirror solamente para arquitecturas de 32 bits, debemos agregar en las opciones: –exclude=x86_64.

Comentarios desactivados
  1. nalemanh 6 años atrás

    Has utilizado este método para actualizar los repos de Ubuntu???, es mas eficiente que debmirror?.

    Saludos …

    1. @nalemanh

      Pienso que sí, incluso, debmirror tiene como primera variante utilizar rsync. Claro, el servidor remoto debe tener el servicio rsync disponible.

  2. Hyuuga_Neji 5 años atrás

    Vaya analizando tu script me surge la duda:

    Con debmirror solo le indicamos que cree un registro haciendo un flujo hasta el archivo que queremos para ir haciendo el clasito tail -f y ver en tiempo real lo que sucede con nuestro debmirror. ¿Como incluirias algo asi en tu script?

  3. Mucho lío, si estás detrás de un proxy con “over-security” date un tiro…. no se puede descargar arch con apt-mirror????

    1. @ilidan

      No creo que se pueda. De todos modos si estás detrás de un proxy igual puedes usar lftp que sería una alternativa muy parecida a rsync.