rsync實現文件的簡單同步

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的根目錄看見了

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