## page was renamed from GruppoTest/ISO/Rsync
#format wiki
#LANGUAGE it
<
>
<>
= Introduzione =
'''rsync''' è un fantastico programma che scarica le parti di un file che sono cambiate nel server. Il sito https://launchpad.net/products/rsync è una buona risorsa di informazioni.
Una cosa molto bella riguardo come vengono create le immagini dei CD di Ubuntu è che con rsync è facile tenere una copia locale aggiornata. Dato che le immagini giornaliere cambiano di solito solo in minima parte, il processo può essere abbastanza veloce.
= Ottenere un immagine ISO =
Tutte le immagini dei CD di Ubuntu sono disponibili sul sito http://cdimage.ubuntu.com. Il modo più veloce per scaricarle la prima volta è usando [[http://it.wikipedia.org/wiki/BitTorrent|Torrent]].
= Aggiornare l'immagine ISO =
Un certo numero di server Ubuntu fungono anche da serventi rsync con indirizzi simili a quelli del sito web. Ad esempio il comando:
{{{
rsync -tzhhP rsync://cdimage.ubuntu.com/cdimage/daily-live/current/natty-desktop-i386.iso .
}}}
sincronizzerà l'immagine giornaliera desktop di Lucid (per la piattaforma i386) con la tua versione locale (il puntino indica il punto corrente della shell). I parametri indicano: -z di usare la compressione, -hh di usare unità di misura facilmente leggibili dall'uomo (Kb, Mb, ecc) e -P indica di mostrare lo stato di progresso.
'''Nota:''' Se state scaricando un'altra edizione di Ubuntu non dimenticate di indicare il nome dell'edizione nel percorso rsync subito dopo cdimage/, ad esempio per kubuntu:
{{{
rsync -tzhhP rsync://cdimage.ubuntu.com/cdimage/kubuntu/daily-live/current/natty-desktop-i386.iso .
}}}
Esiste poi uno script un po' più avanzato per automatizzare il processo di sincronizzazione. Per eseguire con successo questo script occorre che impostiate la variabile '''DIR''' secondo le vostre esigenze. Potete impostare la variabile '''ISO''' dentro lo script o semplicemente passarla come parametro quando lo invocate a riga di comando (questo per rendere semplice sincronizzare più immagini). In alcuni casi si renderà necessario impostare la variabile '''ISOPATH''' se state scaricando un immagine non rilevata automaticamente. Assicuratevi di avere "#!/bin/bash" nella prima riga dello script.
{{{
#!/bin/bash
#Script for updating individual ISO image at cdimage.ubuntu.com (daily/current versions).
#Orginal script written by Henrik Omma, slightly adjusted by Bert Verhaeghe, then a bit by Victor Van Hee
#Jeremy Yoder made it try to automatically pick an ISOPATH, adapted to karmic by Christian Bangerter
# Change this next line to the directory where your previously downloaded iso image sits.
DIR="/home/USERNAME/Desktop/Lucid"
# Choose only one of the iso files below and uncomment it
ISO="lucid-desktop-amd64.iso"
# ISO="lucid-desktop-i386.iso"
# ISO="lucid-alternate-amd64.iso"
# ISO="lucid-alternate-i386.iso"
# Uncomment the line below if you want a different image not listed below
# ISOPATH="cdimage.ubuntu.com/cdimage/LOCATION/current"
# Default ISO to the first command-line parameter
if [ "$1" != "" ]; then
ISO=$1
fi
if [ "$ISOPATH" = "" ]; then
if [[ "$ISO" =~ "-desktop-" ]]; then
ISOPATH="cdimage.ubuntu.com/cdimage/daily-live/current"
elif [[ "$ISO" =~ "-alternate-" ]]; then
ISOPATH="cdimage.ubuntu.com/cdimage/daily/current"
elif [[ "$ISO" =~ "-dvd-" ]]; then
ISOPATH="cdimage.ubuntu.com/cdimage/dvd/current"
elif [[ "$ISO" =~ "-netbook-remix-" ]]; then
ISOPATH="cdimage.ubuntu.com/cdimage/ubuntu-netbook-remix/daily-live/current"
elif [[ "$ISO" =~ "-server-" ]]; then
ISOPATH="cdimage.ubuntu.com/cdimage/ubuntu-server/daily/current"
else
echo "Unrecognized distribution, set ISOPATH manually"
exit 1
fi
fi
if [ ! -d $DIR ]; then
echo "Sorry, $DIR does not exist"
exit
fi
cd $DIR
md5sum $ISO | sed -e "s/ / */" > $ISO.md5.local
# ^ create identical formatted md5sum file from local copy
echo ""
echo "########################################"
echo "# diff'ing MD5SUMs : local <-> server #"
echo "########################################"
wget -q http://$ISOPATH/MD5SUMS
grep $ISO MD5SUMS > $ISO.md5.server
rm MD5SUMS
diff -q $ISO.md5.local $ISO.md5.server
if [ ! $? -eq "0" ]; then
echo ""
echo "!!! MD5SUMs differ !!!"
echo "...Performing rsync..."
echo "###################"
echo "# rsync iso image #"
echo "###################"
rsync -avzhhP rsync://$ISOPATH/$ISO .
else
echo ""
echo "MD5SUMs identical -- no need to Rsync"
echo ""
exit 0
fi
echo ""
echo "########################################"
echo "# diff'ing MD5SUMs : local <-> server #"
echo "########################################"
md5sum $ISO | sed -e "s/ / */" > $ISO.md5.local
diff -q $ISO.md5.local $ISO.md5.server
if [ ! $? -eq "0" ]; then
echo ""
echo "!!! MD5SUMs differ !!!"
echo "!!! Rsync failed! !!!"
else
echo ""
echo "MD5SUMs identical"
echo "SUCCESS!"
fi
echo ""
}}}
Questo script fa sostanzialmente tre cose. Per primo crea un file contenente il codice di controllo MD5SUM dell'immagine locale e remota e mostra se i due codici sono identici o meno. Se non sono identici significa che nel server è stata aggiornata l'immagine ed inizia la sincronizzazione. Al termine controlla di nuovo il codice MD5SUM e visualizza il risultato.
= Uso alternativo con zsync =
zsync è un'altra implementazione dello stesso algoritmo che usa rsync, ma non richiede software aggiuntivo installato sul server.
Sembra essere anche leggermente più efficiente (richiede meno dati da scaricare) per le immagini ISO.
Per scaricare o aggiornare un immagine con zsync usate il seguente comando:
{{{
zsync http://cdimage.ubuntu.com/daily-live/current/natty-desktop-amd64.iso.zsync
}}}
= Ulteriori Risorse =
* [[https://help.ubuntu.com/community/ZsyncCdImage|Documento originale]]
## da questo punto in poi non modificare!
----
CategoryComunitaTest