CentOS6.5實現rsync+inotify實時同步

1.架構

服務器端:192.168.202.135

客戶端:192.168.202.129

2.rsync服務器端安裝配置

yum install rsync -y    #安裝rsync服務

爲rsync服務提供配置文件:

vim /etc/rsyncd.conf    #文件默認不存在,添加以下內容

uid = root    #啓動服務進程的用戶
gid = root    #啓動服務進程的用戶組
port = 873    #以守護進程啓動rsync服務時監聽的端口號
hosts allow = 192.168.202.0/24    #允許哪些客戶端能夠連接服務
max connections = 0    #指定該服務的最大併發連接數,爲0表示不限制
timeout= 300    #指定超時時間

pid file = /var/run/rsyncd.pid    #pid文件路徑
lock file = /var/run/rsync.lock    #鎖文件路徑
log file = /var/log/rsyncd.log    #日誌文件路徑

[backup]    #模塊聲明
path =/rsync/test    #指定當前模塊在rsync服務器上的同步路徑,該參數是必須指定的
read only = no    #是否允許客戶端上傳文件
list = no    #當客戶請求列出可以使用的模塊列表時,該模塊是否應該被列出
auth users = rsync    #指定由空格或逗號分隔的用戶名列表,只有這些用戶才允許連接該模塊
secrets file = /etc/rsync.passwd    #保存密碼和用戶名文件,需要自己生成

設置密碼文件:

vim /etc/rsync.passwd    #添加以下內容

rsync:123456

chmod 600 /etc/rsync.passwd    #修改密碼文件權限爲600

注:當配置文件中參數strict modes爲true時,rsync認證口令文件的權限一定是600,否則客戶端將不能連接服務器。rsync認證口令文件中每一行指定一個 用戶名:口令 對,格式爲:username:passwd。

啓動rsync服務並設置開機自啓動:

/usr/bin/rsync --daemon    #以守護進程方式啓動rsync服務
echo "/usr/bin/rsync --daemon">>/etc/rc.local    #添加開機自啓動

3.rsync客戶端安裝與配置

安裝inotify-tools:

    在安裝inotify-tools前請先確認你的linux內核是否達到了2.6.13,並且在編譯時開啓了CONFIG_INOTIFY選項,也可以通過以下命令檢測,如果出現以下輸出,說明支持:

[root@localhost ~]# ls /proc/sys/fs/inotify/
max_queued_events  max_user_instances  max_user_watches

    安裝:

wget http://cloud.github.com/downloads/rvoicilas/inotify-tools/inotify-tools-3.14.tar.gz 
tar xvf inotify-tools-3.14.tar.gz  
cd inotify-tools-3.14  
./configure  
make;make install

編寫rsync.sh監控腳本:

#!/bin/bash
host=192.168.202.135
src=/data/www/
des=backup
user=rsync

/usr/local/bin/inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format  '%T %w%f' \
 -e modify,delete,create,attrib \
${src} \
| while read  file
        do
                rsync -vzrtopg --delete --progress ${src} ${user}@${host}::${des} --password-file=/etc/www.pwd &&
                echo "${files} was rsynced" >> /tmp/rsync.log 2>&1
                echo "---------------------------------------------------------------------------"
        done

建立認證文件(客戶端認證文件只用加入密碼即可)並後臺運行rsync.sh腳本:

echo 'rsync' >> /etc/www.pwd
chmod 600 /etc/ww.pwd
nohup sh /root/rsync.sh &  
echo "nohup sh /root/rsync.sh &" >> /etc/rc.local

參考資料:

rsync服務器的安裝與配置:http://www.cnblogs.com/mchina/p/2829944.html

rsync+inotify實現文件批量更新:http://kerry.blog.51cto.com/172631/734087/

rsync+inotify實現數據實時備份:

http://blog.chinaunix.net/xmlrpc.php?r=blog/article&uid=11840697&id=3890795

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章