CentOS 6.x下使用rsync+httpd搭建配置本地yum源库

一、环境说明

本教程就以同步网络上的开源yum仓库到本地,配置成本地的yum仓库(使用光盘即可,有兴趣的可以自己配置以下)

系统采用CentOS6.8_x64 ,rsync httpd,同步CentOS6.x软件包到本地,以及添加常用rpm包到本地yum仓库;测试机器内网ip为10.168.118.93

二、安装rsync和httpd

1、安装软件

#yum install rsync  httpd -y

暂时不做配置,rsync用来从外网yum仓库同步用的,httpd用来发本地yum仓库

2、配置httpd

修改httpd配置如下(大约在295行)

DocumentRoot "/data1/www/html/"    #这个目录即下面脚本中同步外网yum仓库到本地的位置

3、启动httpd服务

#service httpd start

#chkconfig --httpd on

三、同步外网yum脚本

1、同步脚本

#cat rsync_yum.sh

#!/bin/bash
YUM_SITE= "rsync://mirrors.kernel.org/centos/"
#存放路径,我这里用的是独立分区的目录
LOCAL_PATH= "/data1/www/html/centos/"
#需要同步哪些目录
LOCAL_VER= './'
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
verlist=6            #指定要同步的yum源,6即CentOS6,也可以同时同步多个版本,以空格隔开
# sync yum source,only 6
for  VER  in  $verlist;
do
    $RSYNC_PATH -avzH --delete --bwlimit=$BW_limit --exclude-from= /data1/workshell/exclude .txt $YUM_SITE/$VER/ $LOCAL_PATH/$VER/
done
# clean lock file
` /bin/rm  -f $LOCK_FILE`
echo  "rsync end $(date +%Y-%m-%d_%k:%M:%S)"  >>  /data1/www/html/centos/centos_rsync_is_end .txt
exit  1

2、添加脚本到计划任务

添加脚本到crontabl计划中每周一凌晨3点执行同步

1 3 * * 1 /data1/workshell/rsync_yum.sh 2> /dev/null

3、手动执行测试

同步完后可以看到目录结构如下:

 

4、客户端测试

移除系统自带的repo仓库,创建local.repo配置内容如下:

#cd /etc/yum.repos.d/
#mkdir bak
#mv *.repo ./bak

#cat local.repo

[base]
name=CentOS - base
baseurl=http: //10 .168.118.93 /centos/ $releasever /os/ $basearch/
gpgcheck=1
gpgkey=http: //10 .168.118.93 /centos/RPM-GPG-KEY-CentOS-6
[updates]
name=CentOS - updates
baseurl=http: //10 .168.118.93 /centos/ $releasever /updates/ $basearch/
gpgcheck=1
gpgkey=http: //10 .168.118.93 /centos/RPM-GPG-KEY-CentOS-6
[extras]
name=CentOS - extras
baseurl=http: //10 .168.118.93 /centos/ $releasever /extras/ $basearch/
gpgcheck=1
gpgkey=http: //10 .168.118.93 /centos/RPM-GPG-KEY-CentOS-6

#yum clean all

#yum makecache 如图:

#测试安装lftp如图:

到此本地yum仓库配置完成!

猜你喜欢

转载自www.linuxidc.com/Linux/2017-07/145383.htm
今日推荐