我們在選擇VPS礁哄、服務器架設項目之后,所有的項目溪北、網站數據都需要我們自行備份和維護桐绒,即便有些服務商有提供管理型服務器,但是數據自行備份和管理才是較為靠譜的之拨。無論是網站茉继,還是其他項目,數據的備份方式有很多種蚀乔,有服務商提供的快照備份烁竭,也可以我們手工和自動利用腳本備份到本地服務器或者遠程服務器。
但是吉挣,較多的做法都只能做到定期和定時的備份派撕,如果我們網站項目數據吞吐量比較大,那定時備份并不能完美的解決數據的容災問題睬魂,萬一數據丟失或者不完整终吼,我們可能只能恢復到上一個備份點,也會產生數據丟失氯哮。如果我們項目比較大且數據重要际跪,定時備份的方式肯定不行的。
我們可以在定時備份的同時喉钢,采用增量同步備份,比如主服務器數據增加一剎那,也會在備份服務器中同步過去歇盼,如果我們數據更為重要的,還可以采用多臺備份服務器同步豹缀。在這篇文章中伯复,老部落(微信公眾號:imweber)重新整理一份較為完整且確實可行的Rsync同步增量備份方式。
第一啸如、準備工作
1氮惯、數據備份
如果我們沒有把握一次性搞定叮雳,我們可以準備兩臺測試環(huán)境服務器實現Rsync同步備份功能之后再用到生產環(huán)境想暗。如果用到生產環(huán)境,我們可以將服務器快照備份帘不,或者將網站、項目數據備份储狭。
2、服務器準備
這里我們采用的是Rsync同步增量備份辽狈,所以我們需要準備主服務器呛牲、以及一臺備份服務器。鑒于數據備份后的功能侈净,我們可以直接備份到備份服務器某一個目錄,或者將備份服務器安裝主服務器環(huán)境元扔,將需要備份的網站項目備份到對應的同目錄中旋膳。
3、端口開放
如果我們服務器沒有設定iptables防火墻規(guī)則验懊,那就不要設置端口。如果我們有設置iptables防火墻减俏,那就需要將873端口添加放行碱工。
vi /etc/sysconfig/iptables
打開iptables規(guī)則文檔,添加:
-A INPUT -p tcp -m state --state NEW -m tcp --dport 873 -j ACCEPT
編輯保存之后怕篷,然后/etc/init.d/iptables restart重啟才能生效。同樣的方法梳猪,我們需要在主服務器和備份服務器同時設置蒸痹。
第二呛哟、配置備份服務器
1惕稻、安裝rsync
yum install rsync xinetd -y
2、配置文件
vi /etc/xinetd.d/rsync
將配置文件disable參數從"yes"換成"no"公给。
3、創(chuàng)建配置文件
vi /etc/rsyncd.conf
創(chuàng)建文件蜘渣,然后將下面腳本添加:
log file = /var/log/rsyncd.logpidfile = /var/run/rsyncd.pidlock file
= /var/run/rsync.locksecrets file = /etc/rsync.passmotd file =
/etc/rsyncd.Motd#創(chuàng)建一個模塊名稱,后面需要一致[www.laobuluo.com]#備份服務器目錄地址path =
/home/wwwroot/www.laobuluo.com#對應上面模塊名稱comment = www.laobuluo.comuid =
rootgid = rootport = 873use chroot = noread only = nolist = nomax
connections = 200timeout = 600#創(chuàng)建一個同步用戶名腿准,隨便取拾碌,反正后面出現的時候要一致auth users =
www.laobuluo.com_user#主服務器IP地址hosts allow = xxx.xxx.xxx.xxx
根據我們網站項目以及服務器實際信息創(chuàng)建文件貼到配置文件中保存退出。
4弟跑、創(chuàng)建密碼配對文件
vi /etc/rsync.pass
創(chuàng)建密碼配對文件:
www.laobuluo.com_user:1234567890passwd
紅色字段需要對應上面的auth users防症,藍色部分是我們創(chuàng)建配對的密碼。后面主服務器配置的時候也需要用到密碼蔫敲,所以必須一致。
5貌虾、開放權限和啟動
chmod 600 /etc/rsyncd.confchmod 600 /etc/rsync.passservice xinetd restart
第三裙犹、配置主服務器
1、安裝rsync
yum install rsync xinetd -y
2伯诬、配置文件
vi /etc/xinetd.d/rsync
將配置文件disable參數從"yes"換成"no"巫财。
3、創(chuàng)建密碼配對文件
vi /etc/passwd.txt
將我們上面在備份服務器中藍色的密碼丟進來赫舒,必須一致。
4心赶、授權和啟動
chmod 600 /etc/passwd.txtservice xinetd restart
第四缺猛、配置主服務器
這一步我們繼續(xù)配置主服務器,需要安裝和配置inotify-tools來實現同步增量備份荔燎。
1、安裝環(huán)境包
yum install make gcc gcc-c++ -y
2琐簇、下載和安裝inotify-tools
cd /usr/local/srcwget
https://download.laobuluo.com/tools/inotify-tools-3.14.tar.gztar -zxvf
inotify-tools-3.14.tar.gzcd inotify-tools-3.14./configure
--prefix=/usr/local/inotifymakemake install
3座享、配置環(huán)境變量
echo "PATH=/usr/local/inotify/bin:$PATH"
>>/etc/profile.d/inotify.shsource /etc/profile.d/inotify.shecho
"/usr/local/inotify/lib" >/etc/ld.so.conf.d/inotify.confln -s
/usr/local/inotify/include /usr/include/inotify
4、配置參數
vi /etc/sysctl.conf
添加到腳本最后:
fs.inotify.max_queued_events=99999999fs.inotify.max_user_watches=99999999fs.inotify.max_user_instances=65535
5丈秩、創(chuàng)建觸發(fā)腳本
vi /usr/local/inotify/rsync.sh
創(chuàng)建腳本:
#!/bin/sh#同步主服務器網站目錄srcdir=/home/wwwroot/www.laobuluo.com#目錄名稱dstdir=www.laobuluo.comexcludedir=/usr/local/inotify/exclude.list#對應同步名稱要一致rsyncuser=www.laobuluo.com_userrsyncpassdir=/etc/passwd.txt#備份服務器IP地址dstip="xxx.xxx.xxx.xxx"for
ip in $dstipdorsync -avH --port=873 --progress --delete
--exclude-from=$excludedir $srcdir $rsyncuser@$ip::$dstdir
--password-file=$rsyncpassdirdone/usr/local/inotify/bin/inotifywait -mrq
--timefmt '%d/%m/%y %H:%M' --format '%T %w%f%e' -e
close_write,modify,delete,create,attrib,move $srcdir | while read
filedofor ip in $dstipdorsync -avH --port=873 --progress --delete
--exclude-from=$excludedir $srcdir $rsyncuser@$ip::$dstdir
--password-file=$rsyncpassdirecho " ${file} was rsynced" >>
/tmp/rsync.log 2>&1donedone
修改自行的文件和目錄诗箍,然后保存退出。
6滤祖、創(chuàng)建排除目錄列表
vi /usr/local/inotify/exclude.list
創(chuàng)建一個排除目錄匠童,這里可以添加不同步的目錄,一行一個目錄汤求。如果暫時沒有可以留空,以后需要用到在添加竖独。
7挤牛、授權和設置開機啟動
chmod +x /usr/local/inotify/rsync.sh
這里我們授權。
vi /etc/rc.d/rc.local
最后一行添加:
sh /usr/local/inotify/rsync.sh &
第五、檢測以及生效小結
1航瞭、檢查生效
設置完畢之后坦辟,我們可以通過手工檢查
sh /usr/local/inotify/rsync.sh &
在主服務器執(zhí)行腳本,如果看到有目錄在進度锉走,說明完美,然后去備份服務器中可以看到已經備份到的文件目錄疮绷。
2嚣潜、自動生效
重啟主服務器,然后就會自動生效懂算。如果不放心我們可以在主服務器對應目錄丟一個文件看看備份服務器是否有增加。
這樣喜德,我們就通過rsync實現主服務器與備份服務器之間的同步增量備份垮媒,來解決大數據吞吐的解決容災問題。如果我們數據不大睡雇,可以采用定時和手工備份,畢竟這樣一套設置下來確實比較費時間秕豫。
本文原創(chuàng)來自:https://www.laobuluo.com/1070.html