Hoy vamos a trabajar en dos casos prácticos de creación de mirrors, en este caso crearemos un mirror o espejo de la distribución Gnu Linux Manjaro y Kaos, poniendo en practica lo comentado en un artículo pasado llamado "¿Cómo crear un mirror o espejo web?".
Lo primero que debemos de hacer es crear el directorio donde se creara el espejo, esto lo podemos crear desde ftp o desde terminal:
1 2 |
mkdir -p /var/www/mirror/manjaro mkdir -p /var/www/mirror/kaos |
Con esto hice lo mismo que con e ftp, cree el directorio mirror y dentro de el ambas carpetas.
Como segundo paso crearemos un script de actualización para nuestras dos distribuciones de Gnu Linux siguiendo los ejemplos:
Por ejemplo para Manjaro creamos un archivo de texto simple con el nombre .manjaro-sync.sh y pegamos en su interior el siguiente texto editando los campos indicados:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
#!/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/mirror/manjaro" RSYNC=/usr/bin/rsync LOCKFILE=/tmp/rsync-manjaro.lock synchronize() { $RSYNC -rtlvH --delete-after --delay-updates --safe-links rsync://repo.manjaro.org/repos "$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 fi rm -f "$LOCKFILE" |
Como podéis fijaros los campos más relevantes son:
1 2 3 4 5 6 7 |
DESTPATH="dirección del directorio y carpeta donde hacer la copia" [...] synchronize() { $RSYNC -rtlvH --delete-after --delay-updates --safe-links rsync://url del repositorio a copiar "$DESTPATH" } |
El ejemplo para Kaos se repite con el texto anterior con las modificaciones pertinentes, quedando el archivo con nombre .kaos-sync.sh y el ejemplo:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
#!/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 Kaos 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/mirror/kaos" RSYNC=/usr/bin/rsync LOCKFILE=/tmp/rsync-kaos.lock synchronize() { $RSYNC -rtlvH --delete-after --delay-updates --safe-links rsync://kaosx.tk/kaos "$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 fi rm -f "$LOCKFILE" |
Datos a tener en cuenta:
El tercer paso sera subir el archivo por ftp al directorio mirror o por ssh, por comodidad recomiendo ftp. Una vez subido el archivo al ftp deberemos de introducir los siguientes comandos por la terminal para cambar los permisos al archivo:
1 |
chmod +x /var/www/mirror/.manjaro-sync.sh |
1 |
chmod +x /var/www/mirror/.kaos-sync.sh |
Si ponéis otra ruta tan solo debéis de editar la dirección e introducr el mismo comando.
Como último paso queda ejecutar el repositorio para que se actualice, para ello basta con introducir por terminal:
1 |
/var/www/mirror/.manjaro-sync.sh |
1 |
/var/www/mirror/.kaos-sync.sh |
Según el caso uno u otro comando.
Como extra vamos a añadir un cron para que se actualice automaticamente cada hora, así tendremos el mirror siempre actualizado, para ello introducimos el siguiente comando por la terminal:
1 |
nano /etc/crontab |
Con esto entraremos al cron de nuestro sistema, lugar donde lo creearemos con los datos que prefiramos.
Aquí os dejo acceso a los ejemplos creados:
Mirror Manjaro y Mirror Kaos.