个人工具

UbuntuHelp:RsyncCdImage

来自Ubuntu中文

Wikibot讨论 | 贡献2008年4月23日 (三) 11:56的版本

跳转至: 导航, 搜索

rsync is a wonderful piece of software that only downloads the parts of a file that have changed. https://launchpad.net/products/rsync is a good resource for more information. A nice thing about the way the Ubuntu CDs are constructed is that it's quite easy to keep an up to date local install CD using rsync. Since the daily CDs generally change quite little, it can be processed quite quickly.

Acquiring the ISO

The various files that you need are at http://cdimage.ubuntu.com It's best to use the torrent file if you can. If you have a local Ubuntu archive mirror or cache, you can also use Jigdo. Rsync is handy for finishing up Jigdo downloads that still have a few missing pieces.

Updating the ISO

A number of the Ubuntu servers also work as rsync servers with quite similar URIs to the websites. For example:

rsync -zhhP rsync://cdimage.ubuntu.com/cdimage/daily-live/current/hardy-desktop-i386.iso .

will sync the server's daily Hardy desktop image (for i386) to your local system with an older desktop image already stored on your hard drive. -z is compression, -hh is human readable file size (not in Dapper (2.6.6) though), and -P is a progress indicator. Note: If you are using other flavors of Ubuntu don't forget to add the flavor's name in the rsync-path after cdimage/, e.g.

rsync -zhhP rsync://cdimage.ubuntu.com/cdimage/kubuntu/daily-live/current/hardy-desktop-i386.iso .

A slightly more advanced script will automate much of the syncing process. To run this script successfully, you will need to set the ISO, DIR, and ISOPATH variables according to your needs.

#!/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

ISO="hardy-desktop-i386.iso"
DIR="/data/software/iso-files/ubuntu/hardy"
ISOPATH="cdimage.ubuntu.com/cdimage/xubuntu/daily-live/current"

cd $DIR
echo "###################"
echo "# rsync iso image #"
echo "###################"
rsync -avzhhP --progress rsync://$ISOPATH/$ISO $ISO

md5sum $ISO | sed -e "s/  / */" > $ISO.md5.local #create identical formatted md5sum file from local copy
wget http://$ISOPATH/MD5SUMS 
grep $ISO MD5SUMS > $ISO.md5.server
rm MD5SUMS

echo ""
echo "########################################"
echo "# diff'ing MD5SUMs : local <-> server  #"
echo "########################################"
diff -q $ISO.md5.local $ISO.md5.server
echo ""
if [ ! $? -eq "0" ]; then
        echo "!!! MD5SUMs differ !!!"
else
        echo "MD5SUMs identical"
fi

This script does two things. First, it syncs your local ISO image to the most recent ISO image on the Ubuntu servers. It then creates files containing the MD5SUMs of both the local and server images, and outputs if the MD5SUMs are identical or not.