Linux下利用rsync实现网站镜像同步
利用rsync實現(xiàn)網(wǎng)站鏡像同步
作者:Operation by CrazyLinux 工作室
一、安裝
RHEL5默認使用的是rsync 2.x版本的。對系統(tǒng)資源使用較大,建議下載3.x版本的使用
下載地址 http://rsync.samba.org/
1、安裝(推送端與接收端都需要安裝)
#tar -zxvf? rsync-3.0.7.tar.gz
#cd rsync-3.0.7
#./configure --prefix=/usr/local/rsync3
#make && make install
2、修改配置文件? (接收端需要配置,推送端不用)
#vim /etc/rsyncd.conf
uid=root????????????????????????????????????????????????????? #使用用戶
gid=root????????????????????????????????????????????????????? #使用組
max connections=36000???????????????????????????????? #最大連接
use chroot=no????????????????????????????????????????????? #是否使用chroot。
log file=/var/log/rsyncd.log????????????????????????????? #日志文件
pid file=/var/run/rsyncd.pid???????????????????????????? #pid文件
lock file=/var/run/rsyncd.lock??????????????????????????? #參數(shù)鎖文件
strict modes =yes????????????????????????????????????????? #是否監(jiān)測密碼文件的權(quán)限
#rsync現(xiàn)由samba公司維護。所以風(fēng)格和samba很像
[wwwroot]?????????????????????????????????????????????????? #定義模塊,供外部訪問的
path=/home/wwwroot?????????????????????????????????? #定義真實路徑
comment=wwwroot backup??????????????????????????? #描述信息
ignore errors=yes???????????????????????????????????????? #在判斷是否運行傳輸時的刪除操作時忽略server上的IO錯誤
read only=no????????????????????????????????????????????? #是否為只讀。No為允許寫入
auth users = crazylinux???????????????????????????????? #認證用戶
secrets file = /etc/rsync.pas?????????????????????????? #密碼文件:格式: crazylinux:password
hosts allow=192.168.1.0/24?????????????????????????? #定義允許的網(wǎng)段
hosts deny=0.0.0.0????????????????????????????????????? #拒絕的網(wǎng)段
# cat /etc/rsync.pas
crazylinux:123456
--------------------------------------------------------------------------------------------------------
上面配置文件,表明允許主服務(wù)器(假設(shè)ip為192.168.1.0/24網(wǎng)段)訪問,rsync同步模塊名為[wwwroot],將同步過來的文件放入path指定的目錄/home/wwwroot。如果有多臺從服務(wù)器,則每一臺都需要進行類似的配置。
配置好之后,使用如下命令,開啟rsync守護進程:
ln -s /usr/local/rsync3/bin/rsync /usr/bin
rsync --daemon
二、在推送端安裝配置sresync
在http://code.google.com/p/sersync/downloads/list下載sersync的可執(zhí)行文件版本,里面有配置文件與可執(zhí)行文件,這里用sersync2.5進行說明,新版本配置形式類似。
tar -zxvf sersyncXxxx_xxbit_binary.tar.gz
cd GNU-Linux-x86/
vim confxml.xml
修改如下部分:
--------------------------------------------------------------------------------------------------------
<sersync>
<localpath watch="/home/wwwroot">????????????????????????????????????? #定義本地路徑
<remote ip="192.168.1.103" name="wwwroot"/>???????????????? #定義接收端的ip和模塊
</localpath>
<rsync>?????????????????????????????????????????????????????? #如果開啟認證模式需要修改如下
<commonParams params="-artuz"/>?????????????????????????????? #rsync遠程參數(shù)
<auth start="true" users="crazylinux" passwordfile="/etc/rsync.pas"/>??
????????????????????????????????????????????????????????????? #定義遠程用戶名和密碼文件
<userDefinedPort start="false" port="874"/><!-- port=874 -->? #定義端口
<timeout start="false" time="100"/><!-- timeout=100 -->?????? #定義同步間隔時間,以s為單位
<ssh start="false"/>
</rsync>
# cat /etc/rsync.pas
123456
--------------------------------------------------------------------------------------------------------
表明要將主服務(wù)器上本地的/home/wwwroot路徑下的文件,同步到遠程服務(wù)器192.168.1.103上的wwwroot模塊。
運行Sersync與Sersync啟動參數(shù)
sersync會對目錄進行監(jiān)控,將變化的目錄或文件同步到遠程服務(wù)器。sersync是遞歸監(jiān)控的,如果有多級目錄,都會同步到遠程服務(wù)器。常用啟動方式如下:
1.在主服務(wù)器上開啟sersync守護進程,使sersync在后臺運行,開啟實時同步。
./sersync -d
過程如下:
# ls
confxml.xml? sersync2
# ./sersync2-d
set the system param
execute:echo 50000000 > /proc/sys/fs/inotify/max_user_watches
execute:echo 327679 > /proc/sys/fs/inotify/max_queued_events
parse the command param
daemon thread num:10
parse xml config file
host ip:localhost???? host port:8008
config xml parse success
please set /etc/rsyncd.conf max connections=0 Manually
sersync working thread 12? = 1(primary thread) + 1(fail retry thread) + 10(daemon sub threads)
please according your cpu ,use -n param to adjust the cpu rate
run the sersync:
watch path is:/home/wwwroot
表明,sersync已經(jīng)開啟,可以在本地監(jiān)控路徑下建立文件,查看遠程是否同步成功。
2.同步參數(shù)
./sersync2?? -d 開啟實時同步
??????????????? -o xxx.xml 指定配置文件
??????????????? -n num 指定默認的線程池的線程總數(shù)
??????????????? -m pluginName? 不進行同步,只運行插件
./sersync -r -d -n 2 -o confxml.xml 多個命令可以同時使用(實時同步,開啟2個線程。指定配置文件)
9.補充:
在rhel5中默認是不允許客戶端同步服務(wù)端的,主要是SElinux他禁止了這個行為,要想同步就要修改SElinux的策略,用以下方法來解決:
? setsebool -P allow_rsync_anon_write 1意思為允許客戶端從服務(wù)端下載數(shù)據(jù),或完全禁止rsync受SElinux的保護,就使用下面命令來取消SElinux對rsync的保護:setsebool -p rsync_disable_trans 1
rsync的命令格式能夠為:
????? 1. rsync [OPTION]... SRC [SRC]... DEST
????? 2. rsync [OPTION]... SRC [SRC]... [USER@]HOST:DEST
????? 3. rsync [OPTION]... [USER@]HOST:SRC DEST
4. rsync [OPTION]... [USER@]HOST::SRC [DEST]
5. rsync [OPTION]... SRC [SRC]... [USER@]HOST::DEST
6. rsync [OPTION]... rsync://[USER@]HOST[:PORT]/SRC [DEST]
rsync有六種不同的工作模式:
????? 1. 拷貝本地文檔;當(dāng)SRC和DES路徑信息都不包含有單個冒號":"分隔符時就啟動這種工作模式。
2.使用一個遠程shell程式(如rsh、ssh)來實現(xiàn)將本地機器的內(nèi)容拷貝到遠程機器。當(dāng)DST路徑地址包含單個冒號":"分隔符時啟動該模式。
3.使用一個遠程shell程式(如rsh、ssh)來實現(xiàn)將遠程機器的內(nèi)容拷貝到本地機器。當(dāng)SRC地址路徑包含單個冒號":"分隔符時啟動該模式。
4. 從遠程rsync服務(wù)器中拷貝文檔到本地機。當(dāng)SRC路徑信息包含"::"分隔符時啟動該模式。
5. 從本地機器拷貝文檔到遠程rsync服務(wù)器中。當(dāng)DST路徑信息包含"::"分隔符時啟動該模式。
6. 列遠程機的文檔列表。這類似于rsync傳輸,但是只要在命令中省略掉本地機信息即可。
轉(zhuǎn)載于:https://blog.51cto.com/zhuyong1985/1091600
總結(jié)
以上是生活随笔為你收集整理的Linux下利用rsync实现网站镜像同步的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: DOS下处理含特殊字符[如:]的字符串
- 下一篇: 如何提高邮件投递能力-提高邮件群发能力的