1.架構php
服務器端:192.168.202.135html
客戶端:192.168.202.129linux
2.rsync服務器端安裝配置git
yum install rsync -y #安裝rsync服務
爲rsync服務提供配置文件:github
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
vim /etc/rsync.passwd #添加如下內容 rsync:123456 chmod 600 /etc/rsync.passwd #修改密碼文件權限爲600
注:當配置文件中參數strict modes爲true時,rsync認證口令文件的權限必定是600,不然客戶端將不能鏈接服務器。rsync認證口令文件中每一行指定一個 用戶名:口令 對,格式爲:username:passwd。bash
啓動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