天天看点

使用rsync搭建centos的镜像站

自己一直以来相搭建一个开源镜像站,一方面可以了解搭建镜像站的知识,一方面可以同步那些国内没有的linux发行版软件源,但是最主要的原因只是为了好玩

我这个教程不是专业教程,但是要注意的是镜像站是一个对I/O要求很高,网络带宽要求很高,磁盘占用量的站点,不然没人用

安装需要的软件(nginx,rsync)

配置nginx

编写同步脚本

安装PCRE库

下载解压

<code>wget https://ftp.pcre.org/pub/pcre/pcre-8.41.tar.gz</code>

<code>tar -zxvf pcre-8.41.tar.gz</code>

<code>cd pcre-8.41</code>

编译安装

<code>./configure --prefix=/usr/local/pcre</code>

<code>make</code>

<code>make install</code>

安装zlib

<code>wget http://zlib.net/zlib-1.2.11.tar.gz</code>

<code>tar -zxvf zlib-1.2.11.tar.gz</code>

<code>cd zlib-1.2.11</code>

<code>./configure --prefix=/usr/local/zlib</code>

安装openssl库

<code>wget https://www.openssl.org/source/openssl-1.0.2l.tar.gz</code>

<code>tar -zxvf openssl-1.0.2l.tar.gz</code>

<code>cd openssl-1.0.2l</code>

<code>./config --prefix=/usr/local/openssl</code>

安装nginx

<code>wget http://mirrors.sohu.com/nginx/nginx-1.12.1.tar.gz</code>

<code>tar -zxvf nginx-1.12.1.tar.gz</code>

<code>cd nginx-1.12.1</code>

<code>./configure --prefix=/usr/local/nginx --with-pcre=/usr/local/pcre/ --with-zlib=/usr/local/zlib/ --with-openssl=/usr/local/openssl/</code>

报错

百度了一下,原来--with-pcre要指定的不是安装目录而是源码目录

<code>./configure --prefix=/usr/local/nginx --with-pcre=/root/pcre-8.41 --with-zlib=/usr/local/zlib/ --with-openssl=/usr/local/openssl/</code>

又报错

直接指定zlib的源码目录好了

<code>./configure --prefix=/usr/local/nginx --with-pcre=/root/pcre-8.41 --with-zlib=/root/zlib-1.2.11 --with-openssl=/usr/local/openssl/</code>

成功

测试一下

如果你这个时候还是访问不了你的nginx,出现ERR_ADDRESS_UNREACHABLE这个错误,你要检查一下你的防火墙,可以配置也可以选择关闭

<code>systemctl stop firewalld.service</code>

其实到这一步的时候我已经忘记我在干什么了,看了一下标题,哦!原来我在做一个镜像站,,,,,

<code>yum install rsync</code>

之后,配置一下站点

在home文件夹下创建一个站点文件来存放同步过来的资源

<code>mkdir /home/mirror</code>

之后修改nginx.conf的server段为

重启一下服务器

接着你去访问站点,看到的就会是下面这样,因为打开了nginx的目录浏览功能<code>autoindex</code>

安装createrepo

<code>yum install createrepo</code>

因为centos的软件包目录有点多,而且大,所以为了方便我就只同步epel软件源了

<code>mkdir epel</code>

<code>cd epel</code>

<code>mkdir 7</code>

之后编写一个同步脚本

赋予执行权限

<code>sudo chmod +x rsync.sh</code>

安装screen

<code>yum install screen</code>

建立一个新的会话

<code>screen -S rsync</code>

执行脚本

<code>./rsync.sh</code>

<code>ctrl+a+d</code>退出

你可以安装bwm-ng来监控网速

经过两天的折腾,镜像终于同步完成

至于为什么这么慢,是因为之前是在清华大学mirror下同步的,但是那个mirror总是同步到一半之后就同步不料了,下面我推荐一个国外镜像站,清华大学的epel源也是在那边同步过来的,这个时候我不得不说一下很多国外镜像源都是支持rsync的,这可以看出,外国人还是挺良心的,所以百度我草泥马,为什么骂百度?因为没什么地方骂,所以,骂百度是没有错的。

epel源同步完成之后,总的大小有

108G!没错。

首先update一下原来的系统,证明原来的系统有软件源,而且是可以用的

接着备份一下原来客户端的软件源

删除原来的所有软件源

在文件夹中新建一个文件bboysoul.repo

<code>touch bboysoul.repo</code>

写入内容

接着清理原来的缓存再建立新的缓存

<code>yum clean all</code>

之后安装一个软件包试试

没问题

我这里使用的是crontab

编辑crontab的配置文件

<code>crontab -e</code>

输入下面的内容

<code>sudo service crond restart</code>

继续阅读