天天看點

使用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>

繼續閱讀