CentOS 7 rsync+nginx实现公网yum源

1、实验描述

镜像同步公网 yum 源上游 yum 源必须要支持 rsync 协议,否则不能使用 rsync 进行同步。CentOS 7.6 默认已经安装了,当然,还需要能够上网才行。这里同步的是 6.10 和 7.6.1810,所以,虚拟机硬盘要给100G左右。

2、实验环境

【你可能需要】【CentOS 7 搭建模板机】点我快速打开文章

【你可能需要】【VMware 从模板机快速克隆多台】点我快速打开文章

【你可能需要】【CentOS 7 命令行显示优化】点我快速打开文章

【你可看需要】【CentOS 7 配置yum源】点我快速打开文章

虚拟机:

  • 系统:CenOS 7.6
  • 内存:2G+
  • 数量:2台
  • 硬盘:100G+

使用软件的版本:VMware 15 Pro

3、实验工具

【VMware12&15】【001-VMware 12&15】点我快速打开分享(若异常,请私信,万分感谢) 【提取码:0rb9 】

【CentOS7.6】【002-CentOS 7.6】点我快速打开分享(若异常,请私信,万分感谢) 【提取码:9tri 】

4、实验步骤

【公网源官方地址】点我快速打开文章

4.1 安装nginx服务

1. 配置官方源

echo '[nginx]
name=Nginx repo by MineGi
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1' >/etc/yum.repos.d/nginx.repo

cat /etc/yum.repos.d/nginx.repo

2. 安装与配置

yum install -y nginx &>/dev/null
echo $?

IP=$(ip a|awk -F '[ /]+' '$NF~/eth0/ {print $3}')
cat >/etc/nginx/conf.d/yum.conf <<EOF
server {
    listen       80;
    listen      [::]:80;
    server_name  $IP;
    location / {
        root   /usr/share/nginx/html;
        autoindex on;
    }
}
EOF

cat /etc/nginx/conf.d/yum.conf

mv /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/default

3. 启动自启动

nginx -t

systemctl enable nginx

systemctl start nginx

netstat -lntup|grep -c nginx

4.2 同步公网yum源

1. 创建排除文件

cat >/root/.rsync_exclude.txt <<EOF
centosplus/
cloud/
contrib/
cr/
fasttrack/
isos/
sclo/
storage/
virt/
i386/
debug/
drpms/
EOF

cat /root/.rsync_exclude.txt

cat >/root/.rsync_exclude2.txt <<EOF
atomic/
centosplus/
cloud/
configmanagement/
cr/
dotnet/
fasttrack/
isos/
nfv/
opstools/
paas/
rt/
sclo/
storage/
virt/
debug/
drpms/
EOF

cat /root/.rsync_exclude2.txt 

2. 手动执行

/usr/bin/rsync -zaP --exclude-from /root/.rsync_exclude2.txt \
  rsync://rsync.mirrors.ustc.edu.cn/centos/7.6.1810 /usr/share/nginx/html/centos

/usr/bin/rsync -zaP --exclude-from /root/.rsync_exclude.txt \
  rsync://rsync.mirrors.ustc.edu.cn/centos/6.10 /usr/share/nginx/html/centos

/usr/bin/rsync -zaP --exclude-from /root/.rsync_exclude.txt \
  rsync://rsync.mirrors.ustc.edu.cn/epel/7/x86_64 /usr/share/nginx/html/epel/7/

/usr/bin/rsync -zaP --exclude-from /root/.rsync_exclude.txt \
  rsync://rsync.mirrors.ustc.edu.cn/epel/6/x86_64 /usr/share/nginx/html/epel/6/

/usr/bin/rsync -zaP --exclude-from /root/.rsync_exclude2.txt \
  rsync://rsync.mirrors.ustc.edu.cn/centos/7 /usr/share/nginx/html/centos

/usr/bin/rsync -zaP --exclude-from /root/.rsync_exclude.txt \
  rsync://rsync.mirrors.ustc.edu.cn/centos/6 /usr/share/nginx/html/centos

由于需要时间很长,我只演示第一条,提示,后面两条是做软连接的。

由于网络原因,可能失败,多试几次即可

3. 定时任务

crontab -e

30 21 * * * /usr/bin/rsync -zaP --exclude-from /root/.rsync_exclude2.txt rsync://rsync.mirrors.ustc.edu.cn/centos/7.6.1810 /usr/share/nginx/html/centos &>/dev/null

00 22 * * * /usr/bin/rsync -zaP --exclude-from /root/.rsync_exclude.txt rsync://rsync.mirrors.ustc.edu.cn/centos/6.10 /usr/share/nginx/html/centos &>/dev/null

00 21 * * * /usr/bin/rsync -zaP --exclude-from /root/.rsync_exclude.txt rsync://rsync.mirrors.ustc.edu.cn/epel/7/x86_64 /usr/share/nginx/html/epel/7/ &>/dev/null

30 20 * * * /usr/bin/rsync -zaP --exclude-from /root/.rsync_exclude.txt rsync://rsync.mirrors.ustc.edu.cn/epel/6/x86_64 /usr/share/nginx/html/epel/6/ &>/dev/null

crontab -l

4. 验证结果

1. 文件
rm -f /usr/share/nginx/html/*.html

cd /usr/share/nginx/html/ && ls

du -smh centos epel

cd centos && ll

2. 结果

在其它局域网机器进行测试

curl -s -o /etc/yum.repos.d/CentOS-Base.repo \
  http://mirrors.aliyun.com/repo/Centos-7.repo

curl -s -o /etc/yum.repos.d/epel.repo \
  http://mirrors.aliyun.com/repo/epel-7.repo

echo '10.0.0.10  mirrors.aliyun.com' >>/etc/hosts

tail -1 /etc/hosts

rpm -e --nodeps bc

rpm -qa bc

yum install -y bc &>/dev/null

rpm -qa bc

4.3 开启下游同步

cat >/etc/rsyncd.conf <<EOF
#rsync server
uid = nginx
gid = nginx
use chroot = no
max connections = 2000
timeout = 600
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log
ignore errors
read only = true
list = true
hosts allow = 0.0.0.0/0
[centos]
path = /usr/share/nginx/html/centos
[epel]
path = /usr/share/nginx/html/epel
EOF

cat /etc/rsyncd.conf

【本文图片下载地址】【021-公网yum】点我快速打开分享(若异常,请私信,万分感谢) 【提取码:nu5c 】

今天你学习了吗?若有疑问,请留言、私信或加QQ群:647033350,大家一起进步吧!

其他综合-CentOS 7 rsync+nginx实现公网yum源的更多相关文章

  1. rsync同步公网yum源搭建本地yum仓库

    镜像同步公网yum源上游yum源必须要支持rsync协议,否则不能使用rsync进行同步. centos源:rsync://rsync.mirrors.ustc.edu.cn/centos/ epel ...

  2. CentOS 5/6.X 使用 EPEL YUM源

    参考:http://www.linuxidc.com/Linux/2013-08/88523.htm 大纲 一.什么是EPEL? 二.与163 YUM源比较 三.CentOS 5.X 安装使用EPEL ...

  3. Centos 6.5将光盘作为yum源的设置方法

    Centos 6.5将光盘作为yum源的设置方法 在使用Centos 的时候,用yum来安装软件包是再方便不过了,但是如果在无法连接互联网的情况下,yum就不好用了. 下面介绍一种方式,就是将Cent ...

  4. nginx+rsync实现本地yum源以及公网yum源

    1.配置nginx的autoindex模块,开启目录浏览功能 2.使用rsync同步公网源上的软件包,至本地目录中 3.配置客户端指向即可 1.nginx提供目录浏览功能 [root@xuliangw ...

  5. CentOS配置Nginx官方的Yum源

    由于yum源中没有我们想要的nginx,那么我们就需要创建一个"/etc/yum.repos.d/nginx.repo"的文件,其实就是新增一个yum源. [root@niaoyu ...

  6. 【nginx】利用yum源安装nginx

    先安装nginx的yum源 http://nginx.org/en/linux_packages.html#stable 找到链接,安装: rpm -ivh http://nginx.org/pack ...

  7. 配置nginx官网yum源

    由于yum源中没有我们想要的nginx,那么我们就需要创建一个“/etc/yum.repos.d/nginx.repo”的文件,其实就是新增一个yum源 二.添加nginx.repo 文件: [roo ...

  8. Centos 6.0将光盘作为yum源的设置方法

    在使用Centos 的时候,用yum来安装软件包是再方便不过了,但是如果在无法连接互联网的情况下,yum就不好用了. 下面介绍一种方式,就是将Centos安装光盘作为yum源,然后使用yum来安装软件 ...

  9. Centos 6.5 搭建阿里云yum源

    Linux系统下yum源配置(Centos 6) 1.备份 mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo ...

随机推荐

  1. 【洛谷P4148】简单题(kd-tree)

    传送门 题意: 给出一个\(n*n\)的棋盘,现在有两种操作:一种是某个格子里的数字加上\(A\),另一种是询问矩阵和. 空间限制:\(20MB\),强制在线. 思路: 直接\(kd-tree\)来搞 ...

  2. 【BZOJ2437】[Noi2011]兔兔与蛋蛋(博弈+二分图)

    传送门 题意: 给出一个\(n*m\)的棋盘,上面有若干个黑色棋子,若干个白色棋子,还有一个空格. 每次先手选择一个空格,将它与相邻的某个白色棋子交换:后手则选择一个空格,与相邻的某个黑色棋子交换. ...

  3. [C4W2] Convolutional Neural Networks - Deep convolutional models: case studies

    第二周 深度卷积网络:实例探究(Deep convolutional models: case studies) 为什么要进行实例探究?(Why look at case studies?) 这周我们 ...

  4. [C5/C6] 机器学习诊断和系统设计(Machine learning Diagnostic and System Desig

    机器学习诊断(Machine learning diagnostic) Diagnostic : A test that you can run to gain insight what is / i ...

  5. Rest微服务案例(二)

    1. 创建父工程 Maven Project 新建父工程microservicecloud,packaging是pom模式,pom.xml内容如下: <!-- SpringBoot父依赖 --& ...

  6. 洛谷 P5594 【XR-4】模拟赛

    洛谷 P5594 [XR-4]模拟赛 洛谷传送门 题目描述 X 校正在进行 CSP 前的校内集训. 一共有 nn 名 OIer 参与这次集训,教练为他们精心准备了 mm 套模拟赛题. 然而,每名 OI ...

  7. mysql group by 的用法解析

    1. group by的常规用法 group by的常规用法是配合聚合函数,利用分组信息进行统计,常见的是配合max等聚合函数筛选数据后分析,以及配合having进行筛选后过滤. 聚合函数max se ...

  8. go tcp通信

    ----tcp 客户端 package main import ( "net" "fmt" ) func main() { conn,err := net.Di ...

  9. windows远程工具RDO和RDC使用问题

    一. Remote Desktop Organizer远程连接时报错 解决方法: 二. Remote Desktop Connection Manager远程电脑没有全屏,右边和下边有滚动条 解决方法 ...

  10. 【洛谷3515】[POI2011] Lightning Conductor(决策单调性)

    点此看题面 大致题意: 给你一个序列,对于每个\(i\)求最小的自然数\(p\)使得对于任意\(j\)满足\(a_j\le a_i+p-\sqrt{|i-j|}\). 证明单调性 考虑到\(\sqrt ...