Rsync服務讓SLB下多臺centos伺服器檔案同步更新

大成無敵發表於2017-12-22

需求目的 是為了使倆臺叢集下的倆臺伺服器 實現資料同步 及真正的備份 所以負載均衡 加上rsync是一個完美的結合

下面的操作是針對阿里雲的SLB 服務,SLB服務 是由tengine與lvs所組成的 所以在其他環境下也可以使用這種方式,所以操作如下:

當使用了SLB負載均衡,為了保證SLB下兩臺伺服器下面的網站檔案同步,所以採用了rsync服務進行同步,並進行了每三分鐘同步一次。根據這樣操作可以完美的使用slb服務,實現負載均衡、容災恢復 等。。

rsync – remote synchronize是類unix系統下的資料映象備份工具,它的特性如下:

可以映象儲存整個目錄樹和檔案系統。
可以很容易做到保持原來檔案的許可權、時間、軟硬連結等等。
無須特殊許可權即可安裝。
快速:第一次同步時rsync會複製全部內容,但在下一次只傳輸修改過的檔案。rsync在傳輸資料的過程中可以實行壓縮及解壓縮操作,因此可以使用更少的頻寬。
安全:可以使用rcp、ssh等方式來傳輸檔案,當然也可以通過直接的socket連線。
支援匿名rsync 同步檔案,是理想的映象工具。
安裝:
服務端和客戶端安裝rsync
yum -y install rsync

我們將SLB下面兩臺伺服器分為伺服器A與伺服器B,伺服器A為主伺服器,但是需要注意的是必須在伺服器A(100.xxx.xxx.1)和 B(100.xxx.xxx.2)上都安裝rsync,其中A伺服器上是以伺服器模式執行rsync,而B上則以客戶端方式執行rsync。這樣在web 伺服器A上執行rsync守護程式,在B上定時執行客戶程式來備份web伺服器A上需要備份的內容。

伺服器的配置

 一,  vi /etc/rsyncd.conf #根據你自己的rsyncd.conf檔案所在目錄而定

[globale]

strict modes = yes
port = 873
uid = root
gid = root
user chroot = no
max connections = 5 #同時的最大連線數
timeout = 600
pid file = /var/run/rsyncd.pid #程式的pid存放檔案位置
lock file = /var/run/rsyncd.lock #lock檔案位置
log file = /var/log/rsyncd.log #日誌檔案位置
[eeetb.com-rsyncd] #建立一個備份名,伺服器B通過該名稱指定具體的備份位置,可自定義
path=/home/wwwroot #備份檔案存放的目錄位置
ignore errors
read only = no
list = no
hosts allow = 100.xxx.xxx.2 #允許伺服器B地址,如果是內網可以使用內網IP
auth users = root #允許那些使用者,這裡的使用者test的資訊存放在/etc/rsyncd.password
secrets file = /etc/rsyncd.password #指定允許的使用者和使用者密碼

二,建立使用者密碼檔案

vi /etc/rsyncd.password

root:123456 #允許的使用者和密碼

三,修改防火牆策略 允許873埠

vi /etc/sysconfig/iptables #加入下面的規則

-A INPUT -s 100.xxx.xxx.2 -p tcp -m state –state NEW -m tcp –dport 873 -j ACCEPT #授權B伺服器訪問A伺服器873埠

四,啟動伺服器端

/usr/bin/rsync –daemon –config=/etc/rsyncd.conf

五,rsync開機自啟動

echo ‘/usr/bin/rsync –daemon –config=/etc/rsyncd.conf’ >> /etc/rc.local

客戶端B伺服器的配置
一,

vi /etc/rsyncd.password

123456 #伺服器A設定的密碼

chmod 600 /etc/rsyncd.password #需要將密碼檔案許可權設定為600,否者會出現password file must not be other-accessible錯誤

二,

/usr/bin/rsync -avzP –delete –progress –password-file=/etc/rsyncd.password root@100.xxx.xxx.1::eeetb-rsync /home/wwwroot

三,設定每天自動同步任務

1.crontab -e #(可以定時每三分鐘同步一次檔案)加入下方內容

2.MAILTO=””

3./3 * /usr/bin/rsync -avzP –delete –progress –exclude=排除的不需同步目錄 –password-file=/etc/rsyncd.password root@100.xxx.xxx.1::eeetb-rsync /home/wwwroot > /dev/null 2>&1


相關文章