为方便在公司更快的使用yum更新,节省带宽,脚本如下,复制请注意换行!

#!/bin/bash
#author:tony
#webroot:/home/samba_data/centos
#rsync log:/var/log/yumlog
#exclude SPAMS isos
#思路:从centos官方的镜像里边中找一个支持rsync镜像的站点,并测试网络找出其中最快的一个站点,使用rsync同步到本地目录,web站点配置略去

PATH=/usr/lib/courier-imap/sbin:/usr/lib/courier-imap/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
LANG=en_US.UTF-8


export PATH LANG

#rsync://ftp.neowiz.com::centos

function pingtest()
{
        ping -c 2 $1 >/dev/null 2>&1
        if [ ! $? -eq 0 ];then echo timeout;fi
        ping -c 5 $1 |grep ^rtt|awk -F"/" '{print $5}'
}

echo > 1.txt
for i in `curl -s http://www.centos.org/modules/tinycontent/index.php?id=32 |sed 's/href=/\n/g'|grep RSYNC|sed 's#>RSYNC.*##g'|sed "s#'##g"`;do
        domainname=`echo $i|awk -F'/' '{print $3}'|awk -F':' '{print $1}'`
        result=`pingtest $domainname`
        echo "$result $i" >>1.txt
done

url=`cat 1.txt |grep -v ^$|grep -v timeout | sort -n|head -n1|awk '{print $2}'|sed 's#::#/#g'`


mkdir -p /home/samba_data/centos
mkdir -p /var/log/yumlog

#version=`curl -s http://mirrors.163.com/centos/ |awk '{print $2}'|awk -F'>' '{print $1}'|awk -F'"' '{print $2}'|grep ^5|sed 's#/##'|head -n 1`
#echo $version
#mkdir -p /home/samba_data/centos/${version}

echo "start syn `date`" >> /var/log/yumlog/centos-syn-`date +%Y%m%d`.log

#rsync   -aP  --delete 121.10.247.17::centos  /home/samba_data/centos  >> /var/log/centos-5.8-syn-`date +%Y%m%d`.log
#/usr/bin/rsync -aqrtzH --delete --exclude=SRPMS/ --exclude=isos/ ${url}${version}/  /home/samba_data/centos/${version}/  >> /var/log/yumlog/centos-5.8-syn-`date +%Y%m%d`.log
/usr/bin/rsync -aP --delete --exclude=SRPMS/ --exclude=isos/ ${url}  /home/samba_data/centos  >> /var/log/yumlog/centos-syn-`date +%Y%m%d`.log
#/usr/bin/rsync -aP --delete rsync://ftp.neowiz.com/centos  /home/samba_data/centos  >> /var/log/yumlog/centos-syn-`date +%Y%m%d`.log

echo "end syn `date`" >> /var/log/yumlog/centos-syn-`date +%Y%m%d`.log

cd /var/log/yumlog
find . -name "*.log" -mtime +7 -exec rm -f {} \;