RsyncMirror
De SergiTurWiki
| Curs: | DissenyXarxesLinux, |
| Fitxers: | No hi ha fitxers |
| Repositori SVN: | http://svn.projectes.lafarga.cat/svn/iceupc/DissenyXarxaLocalLinux |
| Usuari: | anonymous |
| Paraula de pas: | sense paraula de pas |
| Autors: | Sergi Tur Badenas |
Contingut |
Obtenir un mirror complet d'Ubuntu
Us col·loqueu a la carpeta on voleu fer el mirror i executeu:
$ cd $ mkdir UbuntuMirror $ rsync -a --progress --stats rsync://archive.ubuntu.com/ubuntu . receiving file list ... 351275 files to consider ....
A data (--acacha 06:44, 26 maig 2009 (UTC)) són un total de 235G aprox.
A data (--acacha 10:28, 31 oct 2009 (UTC)) són un total de 315G aprox.
NOTA: El primer cop no cal afegir delete. Després sí, si njo el vostre mirror local anirà creixent sense mesura:
rsync -a --progress --stats --delete-after rsync://fr.archive.ubuntu.com/ubuntu /media/disk2/UbuntuMirror > /home/sergi/backup/UbuntuMirror.log
Script
Extret de la pàgina wiki d'ubuntu:
https://help.ubuntu.com/community/Rsyncmirror
NOTA: L'script no és correcte, té errors de sintaxi TODO
L'script:
## Mirror Synchronization Script /usr/local/bin/ubuntu-mirror-sync.sh ## Version 1.01 Updated 13 Feb 2007 by Peter Noble ## Point our log file to somewhere and setup our admin email log=/var/log/mirrorsync.log adminmail=admin@my.domain # Set to 0 if you do not want to receive email sendemail=1 # Subject is the subject of our email subject="Ubuntu Mirror Sync Finished" ## Setup the server to mirror remote=rsync://archive.ubuntu.com/ubuntu ## Setup the local directory / Our mirror local=/media/mirror/ubuntu ## Initialize some other variables complete="false" failures=0 status=1 pid=$$ echo "`date +%x-%R` - $pid - Started Ubuntu Mirror Sync" >> $log while "$complete" != "true" ; do if $failures -gt 0 ; then ## Sleep for 5 minutes for sanity's sake ## The most common reason for a failure at this point ## is that the rsync server is handling too many concurrent connections. sleep 5m fi if $1 == "debug" ; then echo "Working on attempt number $failures" rsync -a --delete-after --progress $remote $local status=$? else rsync -a --delete-after $remote $local >> $log status=$? fi if $status -ne "0" ; then complete="false" (( failures += 1 )) else echo "`date +%x-%R` - $pid - Finished Ubuntu Mirror Sync" >> $log # Send the email if -x /usr/bin/mail && "$sendemail" -eq "1" ; then mail -s "$subject" "$adminmail" <<OUTMAIL Summary of Ubuntu Mirror Synchronization PID: $pid Failures: $failures Finish Time: `date` Sincerely, $HOSTNAME OUTMAIL fi complete="true" fi done exit 0
Automatitzar l'actualització del Mirror
Primer cal escollir una hora a la que vulgueu fer la actualització. Normalment s'escull una hora de poc trànsit.
Suposem que escollim les 3 de la matinada. Aleshores heu de crear el fitxer :
$ sudo joe /etc/cron.d/update_mirror 0 3 * * * sergi rsync -a --progress --stats --delete-after rsync://91.189.88.40/ubuntu /media/disk2/UbuntuMirror > /home/sergi/backup/UbuntuMirror.log
On:
- /home/sergi/UbuntuMirror: És la carpeta on està el mirror.
- /home/sergi/backup/mysql/wikidb_replica.log: És un fitxer on guardem el resultat de l'actualització.
- --delete-after: Sense aquest opció el mirror anirà creixent sense limit
Com fer el mirror accessible per HTTP amb Apache
La opció més senzilla és instal·lar apache:
$ sudo apt-get install apache2
I crear un link a la carpeta /var/www:
$ cd /var/www $ sudo ln -s /home/sergi/UbuntuMirror ubuntu
Ara el mirror ja ha de poder ser accessible des de Internet amb:
http://LA_VOSTRA_IP/ubuntu
Per a més informació sobre Apache, consulteu l'article Apache.
Fer un mirror d'un repositori de CDs d'Ubuntu
Primer cal crear una carpeta on col·locar el mirror. Cal tenir en compte que es necessita molt espai:
$ sudo mkdir /mnt/DISC_DUR_IOMEGA/UBUNTU/releases.ubuntu.com
Si es vol fer un mirror de tot el servidor:
$rsync -a --bwlimit=64 --progress rsync://releases.ubuntu.com/releases /mnt/DISC_DUR_IOMEGA/UBUNTU/releases.ubuntu.com/ubuntu
El servidor rsync és:
rsync://releases.ubuntu.com/releases o rsync://rsync.releases.ubuntu.com/releases
Si només és vol fer una versió:
$ rsync -rpLtgoD --bwlimit=64 --progress rsync://releases.ubuntu.com/releases/jaunty /mnt/DISC_DUR_IOMEGA/UBUNTU/releases.ubuntu.com/ubuntu
Amb --bwlimit=64 es limita la velocitat de descàrrega a 64Kbytes/s.
NOTA: Cal tenir en compte la opció -L (-rpltgoD equival a -a). Els fitxers iso no es troben realment a la carpeta intrepid sinó que són un enllaç a la carpeta ./.pool on estan totes les ISO. Amb -L, no copiem els enllaços sión que copiem el contingut dels enllaços.
Com registrar un mirror Ubuntu a Launchpad?
Cal anar a la web:
Com saber que tot ha anat correctament?
Utilitzant el paràmetre --stats:
Number of files: 427057 Number of files transferred: 981 Total file size: 319841607439 bytes Total transferred file size: 397195300 bytes Literal data: 217583957 bytes Matched data: 179611343 bytes File list size: 13934868 File list generation time: 46.293 seconds File list transfer time: 0.000 seconds Total bytes sent: 843718 Total bytes received: 232094003
