centos6.5本地yum源和公网同步更新
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
引言
尽管sohu和163都推出了mirrors服务,但当要配置多台服务器时仍然需要占用很多公网带宽,因此配置一个本地yum源并时常与公网同步就显得非常有必要了。本文介绍的就是针对CentOS 6.5配置yum源,并且每日同步公网数据。每日的同步使用rsync协议。
操作步骤
1、安装rsync,yum install rsync
2、关闭防火墙service iptables stop ,chkconfig iptables off
3、修改网上一个同样应用场景的yum源同步脚本,vi centos_yum.sh,脚本位于
/etc/yum.repos.d
源码如下:
#!/bin/bash
# base value
YUM_SITE="rsync:///centos/"
#YUM_SITE="rsync:///centos/"
LOCAL_PATH="/u01/mirrors/centos/"
LOCAL_VER='6.5'
BW_limit=2048
LOCK_FILE="/var/log/yum_server.pid"
RSYNC_PATH=""
# check update yum server pid
MY_PID=$$
if [ -f $LOCK_FILE ]; then
get_pid=`/bin/cat $LOCK_FILE`
get_system_pid=`/bin/ps -ef|grep -v grep|grep $get_pid|wc -l`
if [ $get_system_pid -eq 0 ] ; then
echo $MY_PID>$LOCK_FILE
else
echo "Have update yum server now!"
exit 1
fi
else
echo $MY_PID>$LOCK_FILE
fi
# check rsync tool
if [ -z $RSYNC_PATH ]; then
RSYNC_PATH=`/usr/bin/whereis rsync|awk ' ''{print $2}'`
if [ -z $RSYNC_PATH ]; then
echo 'Not find rsync tool.'
echo 'use comm: yum install -y rsync'
fi
fi
# sync yum source
for VER in $LOCAL_VER;
do
# Check whether there are local directory
if [ ! -d "$LOCAL_PATH$VER" ] ; then
echo "Create dir $LOCAL_PATH$VER"
`/bin/mkdir -p $LOCAL_PATH$VER`
fi
# sync yum source
echo "Start sync $LOCAL_PATH$VER"
$RSYNC_PATH -avrtH --delete --bwlimit=$BW_limit --exclude "isos"
$YUM_SITE$VER $LOCAL_PATH
done
# clean lock file
`/bin/rm -rf $LOCK_FILE`
echo 'sync end.'
exit 1
4、赋予脚本执行权限,chmod 755 centos_yum.sh, 并执行./ entos_yum.sh
5、脚本放入crontab 定时运行,每天2点定时运行
crontab –e
* 2 * * * /etc/yum.repos.d/centos.yum.sh 2>&1 >/dev/null &