CentOS6.x rsync+httpd搭建配置本地YUM源库

余二五 2017-11-22

系统软件 yum 配置 测试 centos 同步 脚本 html

一、环境说明

        yum库,是readhat/CentOS 系统软件仓库,可以通过http ftp协议传输存储在网络上的仓库;yum 主要功能是更方便的添加/删除/更新RPM 包,自动解决软件包依赖性问题,便于管理大量系统的更新维护软件包问题。yum 库可以同时配置多个资源库(Repository),简洁的配置文件(/etc/yum.conf),自动解决增加或删除rpm 包时遇到的依赖性问题,保持与RPM 数据库的一致性。

本教程就以同步网络上的开源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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#!/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、手动执行测试

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

wKiom1lSKyWhX4_eAABE_NbMSKQ119.png-wh_50


4、客户端测试

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

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

#cat local.repo

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[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 如图:

wKioL1lSLNahKc5VAABmwk6WdF8635.png-wh_50


#测试安装lftp如图:

wKioL1lSLyzxsOPXAADFzJWB5xA481.png-wh_50

wKiom1lSLyzBc048AAIbJAbKXek425.png-wh_50


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










本文转自 dyc2005 51CTO博客,原文链接:http://blog.51cto.com/dyc2005/1942480,如需转载请自行联系原作者
登录 后评论
下一篇
云栖号资讯小编
12371人浏览
2020-07-13
相关推荐
实现web数据同步的四种方式
1408人浏览
2017-11-16 14:34:00
linux下LAMP环境搭建
1582人浏览
2017-11-26 11:59:00
LAMP环境搭建与测试
1197人浏览
2017-11-27 13:13:00
yum的使用及配置
3737人浏览
2016-05-12 17:13:43
烂泥:yum的使用及配置
1144人浏览
2017-11-22 17:24:00
Linux运维:cobbler
913人浏览
2017-11-14 17:33:00
0
0
0
1040