为方便在公司更快的使用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 {} \;
转载于:https://blog.51cto.com/zc1103/971280