RsyncMirror

De SergiTurWiki

Share/Save/Bookmark
(S'ha redirigit des de: Rsyncmirror)
Dreceres ràpides: navegació, cerca
Aquesta wiki forma part dels materials d'un curs
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

Vegeu també

Recursos

IES Nicolau Copèrnic