rsync簡介
優點:rsync具有安全性高、備份迅速、支持增量備份等優點,通過rsync可以解決對實時性要求不高的數據備份需求,例如定期的備份文件服務器數據到遠端服務器,對本地磁盤定期做數據鏡像等。
缺點:rsync同步需要掃描所有文件進行對比,當文件非常大時,會消耗很多資源和時間
==============================================================
RSYNC的特性
rsync:功能類似cp,scp
特點:(遠程傳輸默認是不加密的)
1、可以鏡像保存整個目錄樹或文件系統
2、較高的數據傳輸效率
3、可以藉助於ssh實現安全的遠程傳輸
4、支持匿名傳輸
rsync命令的工作模式:
第一中模式:shell模式,即爲本地模式;
第二種模式:遠程shell模式,可以利用ssh協議承載遠程傳輸過程;
第三種模式:列表模式,僅列出源中的內容,-n;
第四種模式:服務模式,工作爲rsync爲守護進程,能夠接受客戶端的數據同步請求;
使用rsync的基本參數和用法
rsync命令的選項:
-n:同步測試,不執行真正的複製過程
-v:詳細輸出模式
-q:靜默模式
-c:checksum,開啓校驗功能
-r:遞歸輔助
***rsync命令中,如果源路徑是目錄,且複製路徑時末尾有/,則會複製目錄內的所有內容;如果
沒有/,則會複製目錄及目錄的所有文件
-a:歸檔,保留文件的原有屬性
-p:保留文件的權限
-t:保留文件是時間戳
-l:保留符號鏈接
-g:保留屬組
-o:保留屬主
-D:保留設備文件
-e ssh:使用ssh作爲傳輸承載
-z:壓縮後傳輸
--progress:顯示傳輸進度
--stats:
使用格式:
Access via remote shell:
Pull: rsync [OPTION...] [USER@]HOST:SRC... [DEST]
Push: rsync [OPTION...] SRC... [USER@]HOST:DEST
Access via rsync daemon:
Pull: rsync [OPTION...] [USER@]HOST::SRC... [DEST]
rsync [OPTION...] rsync://[USER@]HOST[:PORT]/SRC... [DEST]
Push: rsync [OPTION...] SRC... [USER@]HOST::DEST
rsync [OPTION...] SRC... rsync://[USER@]HOST[:PORT]/DEST
******************更詳細的使用請參考官方文檔*******************************
使用rsync實現數據同步
主機
ip地址
rsynchostone
172.16.1.20
rsynchosttwo
172.16.1.21
這裏以兩臺web服務器爲例,根目錄均爲/data/htdocs/www
1、爲rsynchoxtone配置配置文件
#vim /etc/rsyncd.conf
####################################
###########Globle setting##############
uid = nobody
gid = nobody
user chroot = no
max connections = 5
timeout = 300
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsyncd.lock
log file = /var/log/rsyncd.log
###################################
[www]
path = /data/htdocs/
ignore errors = yes
read only = no
list = faulte
hosts allow = 192.168.1.131
auth users = www
secrets file = /etc/rsyncd.password
=====================
創建密碼文件
#vim /etc/rsyncd.password
www:mageedu //注意密碼不能超過八各字符
2、重啓xinetd服務
#/etc/init.d/xinetd restart
3、爲rsynchosttwo安裝inotify-tools
****由於inotify特性需要Linux內核的支持,在安裝inotify-tools前要先確認Linux系統內核是否達到了 2.6.13以上,如果Linux內核低於2.6.13版本,就需要重新編譯內核加入inotify的支持,也可以用如下方法判斷,內核是否支持 inotify
參看內核版本:
#uname -r
編譯安裝inotify-tools
1)下載相關源碼包:
http://lists.pld-linux.org/mailman/pipermail/pld-cvs-commit/Week-of-Mon-20110418/309980.html
2)編譯安裝
#tar xf inotify-tools-3.14.tar.gz
#cd inotify-tools-3.14
#./configure && make && make install
4、爲rsynchosttwo上的inotify創建開機啓動腳本
#vim /root/rsync.sh
#################################################
#!/bin/bash
src=/data/htdocs/www/
des=www
ip=192.168.1.130
/usr/local/bin/inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f' -e modify,delete,create,attrib $src | while read file
rsync -vzrtopg --delete --progress $src www:@ip::des --password-file=/etc/rsyncd.password &&
echo "$src was rsyncd . now !"
done
5、啓動守護進程,啓動腳本
#service xinetd start
#bash -x rsync.sh
6、在rsynvhosttwo的根目錄創建文件,就可以在rsynchostone的根目錄看見了