Hoy vamos a ver como se crea un espejo web o mirror de un repositorio abierto.
Para ello debemos de disponer de un vps o servidor y como no, de una fuente de la cual derivaremos la sincronización o replica del servidor (un ejemplo de mirror podría ser el de Firefox).
Obviamente para ello debemos de tener instalado en nuestro servicio "rsync" y como no, conocer las posibles restricciones que tenga el mirror de nivel 1 o del que derivemos la copia, ya que muchos son libres y sin restricciones, pero otros se organizan con conexiones de listas blancas en las que debes de ser aceptado previamente, en otras se dispone de una franja horaria para conectarse y hacer la copia y otro tipo es por niveles, dando un cupo de puestos para cada nivel, con lo que la sincronización de la fuente tal vez esta limitada a 100 ordenadores y el resto se sincronizan a partir de estos de nivel 2.
Después de saber esto seguiremos los tres pasos de a continuación:
1. Crear la carpeta destino que almacenara la información:
Creamos un directorio destino, ya sea por terminal o por una interfaz gráfica y panel de administración.
Por ejemplo si quiero que el destino sea "/var/www/lignux" tendría que introducir en la terminal:
mkdir -p /var/www/lignux
De esta forma crearía el directorio, obviamente las opciones anteriores también valen.
2. Creamos en la /home de tu servidor o vps un script de sincronización:
En este caso lo llamare .lignux-sync y empleare el esquema del script creado por la comunidad de Manjaro para esta causa:
Puedes descargarlo desde aquí:
#!/bin/bash
# This script should be a cronjob and should be run a few times a day. (example for /etc/crontab: "0 * * * * root /usr/bin/manjaroreposync").
# However you can also move this script to "/etc/cron.hourly".
# To be an official Manjaro Linux mirror and to get access to our rsync server, you have to tell us your static ip of your synchronization server.DESTPATH="/var/www/lignux"
RSYNC=/usr/bin/rsync
LOCKFILE=/tmp/rsync-lignux.locksynchronize() {
$RSYNC -rtlvHq --delete-after --delay-updates --safe-links rsync://mirror.lignux.com/lignux-repo "$DESTPATH"
}if [ ! -e "$LOCKFILE" ]
then
echo $$ >"$LOCKFILE"
synchronize
else
PID=$(cat "$LOCKFILE")
if kill -0 "$PID" >&/dev/null
then
echo "Rsync - Synchronization still running"
exit 0
else
echo $$ >"$LOCKFILE"
echo "Warning: previous synchronization appears not to have finished correctly"
synchronize
fi
firm -f "$LOCKFILE"
Obviamente no os olvidéis de editar los campos en negrita, el primero corresponde al destino que tiene la copia (es el que creamos anteriormente), posteriormente la localización de los archivos temporales y por ultimo la fuente de la cual queremos sincronizarnos y crear un mirror.
3. Ejecutar el script para sincronizar el repositorio con nuestro servidor o vps:
Para ello hemos de conectarnos por ssh y ejecutar el script que anteriormente llame ".lignux-sync":
chmod +x ./.lignux-sync
chmod +x /home/.lignux-sync
/home/.lignux-sync
bash /home/.lignux-sync
Según la configuración que tengas uno de estos comandos iniciara el proceso, cabe destacar que puedes activar un cron para que se actualice automáticamente y no nos olvidemos que la primera sincronización sera la más larga por la descarga de todos los paquetes.