歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux綜合 >> 學習Linux >> 帶你走進rsync的世界

帶你走進rsync的世界

日期:2017/3/3 17:47:39   编辑:學習Linux

帶你走進rsync的世界

帶你走進rsync的世界


導讀Rsync(remote synchronize)是一個遠程數據同步工具,可通過LAN/WAN快速同步多台主機間的文件,也可以使用 Rsync 同步本地硬盤中的不同目錄。rsync共有3種使用方法,在配置rsync也是有6個步驟的。下面我們就從rsync的介紹,rsync的使用和rsync的配置帶你走進rsync的世界一.rsync簡介

Rsync(remote synchronize)是一個遠程數據同步工具,可通過LAN/WAN快速同步多台主機間的文件,也可以使用 Rsync 同步本地硬盤中的不同目錄。 在使用 rsync 進行遠程同步時,可以使用兩種方式:遠程 Shell 方式(建議使用 ssh,用戶驗證由 ssh 負責)和 C/S 方式(即客戶連接遠程 rsync 服務器,用戶驗證由 rsync 服務器負責)。rsync 被稱為是一個文件同步的快速方法,主要是因為其在同步文件時會檢查文件之間是否有差異,它只同步存在差異或者不存在的文件,但是首次同步時速度依然很慢。

rsync有許多選項:    -n: 在不確定命令是否能按意願執行時,務必要事先測試;-n可以完成此功能;    -v: --verbose,詳細輸出模式    -q: --quiet,靜默模式    -c: --checksum,開啟校驗功能,強制對文件傳輸進行校驗    -r: --recursive,遞歸復制;    -a: --archives,歸檔,保留文件的原有屬性    -p: --perms 保留文件的權限    -t: --times 保留文件的時間戳    -l: --links 保留文件的符號鏈接     -g: --group 保留文件的屬組    -o: --owner 保留文件的屬主    -D: --devices 保留設備文件    -H, --hard-links 保留硬鏈結;    -S, --sparse 對稀疏文件進行特殊處理以節省DST的 空間;    -e ssh: 表示使用ssh協議作承載    -z: 對文件壓縮後傳輸    --progress:顯示進度條    --stats: 顯示如何執行壓縮和傳輸    --delete:刪除那些DST中有而SRC沒有的文件,即刪除DST中多余的文件;

帶你走進rsync的世界帶你走進rsync的世界

二,rsync使用方法

rsync可以在此處下載 http://rsync.samba.org/ ,CentOS系統上rsync默認是安裝的。

rsync有六種不同的工作模式:

1. 拷貝本地文件

當SRC和DES路徑信息都不包含有單個冒號”:”分隔符時就啟動這種工作模式。

[root@localhost ~]# rsync -avSH /home/feiyu/ /bak/
2.將本地機器的內容拷貝到遠程機器

使用一個遠程shell程序(如rsh、ssh)來實現將本地機器的內容拷貝到遠程機器。當DST路徑地址包含單個冒號”:”分隔符時啟動該模式。

[root@localhost ~]# rsync -av /home/feiyu/ 192.168.0.24:/home/feiyu/
3.將遠程機器的內容拷貝到本地機器

使用一個遠程shell程序(如rsh、ssh)來實現將遠程機器的內容拷貝到本地機器。當SRC地址路徑包含單個冒號”:”分隔符時啟動該模式。

[root@localhost ~]# rsync -av 192.168.0.24:/home/feiyu/  /home/feiyu/ 

注意:rsync命令使用中,如果源參數的末尾有斜線,就會復制指定目錄的內容,而不復制目錄本身;沒有斜線,則會復制目錄本身;目標參數末尾的斜線沒有作用;因此下面的命令

[root@localhost ~]# rsync -r /mydata/data /backups/ : 會把目錄data直接同步至/backups目錄中 [root@localhost ~]# rsync -r /mydata/data/ /backups/: 會把目錄data/中的內容的同步至/backups目錄中

後面三種模式都是在rsync作為服務器時才能使用的,下面就開始配置rsync作為一個服務。

三,配置rsync服務

配置一個簡單的rsync服務並不復雜,但是我們安裝好rsync後,並沒有發現配置文件,所以你需要手動建立一些配置文件。rsync可以經由xinetd啟動daemon,或者作為一個獨立進程啟動daemon。如果把它作為一個獨立進程來啟動,只需要運行命令:rsync –daemon即可;但是我們一般將其作為超級守護進程使用。下面是安裝步驟:

1.安裝並啟動xinetd
[root@localhost ~]# yum -y install xinetd  [root@localhost ~]# ls  /etc/xinetd.d/    #rsync的xinetd配置文件已經存在chargen-dgram   daytime-dgram   discard-dgram   echo-dgram   rsync          time-dgramchargen-stream  daytime-stream  discard-stream  echo-stream  tcpmux-server  time-stream
2. 為rsync服務提供配置文件

配置文件為/etc/rsyncd.conf,獲取幫助的方式:man rsyncd.conf。配置文件需要定義一個全局配置和多個rsync共享配置。

[root@localhost ~]# cat  /etc/rsyncd.conf # Global Settings# port = 873   端口號默認為873,可以不指定uid = nobody  //指定當模塊傳輸文件的守護進程UIDgid = nobody  //指定當模塊傳輸文件的守護進程GIDuse chroot = no  //使用chroot到文件系統中的目錄中max connections = 5   //最大並發連接數strict modes = yes      #嚴格檢查文件權限pid file = /var/run/rsyncd.pid  //指定PID文件lock file = /usr/local/rsyncd/rsyncd.lock  //指定支持max connection的鎖文件,默認為/var/run/rsyncd.locklog file = /var/log/rsyncd.log  //rsync 服務器的日志 # Directory to be synced[mydata]          //自定義模塊path = /mydata/data    //用來指定要備份的目錄ignore errors = yes    //可以忽略一些IO錯誤read only = no  //設置no,客戶端可以上傳文件,yes是只讀write only = no  //no為客戶端可以下載,yes 不能下載hosts allow = 192.168.0.0/16  //可以連接的IPhosts deny = *   //禁止連接的IPlist = false       //客戶請求時,使用模塊列表uid = rootgid = rootauth users = myuser   //連接用戶名,和linux系統用戶名無關系secrets file = /etc/rsyncd.passwd//驗證密碼文件

說明(deny | allow 規則):
1、二者都不出現時,默認為允許訪問;
2、只出現hosts allow: 定義白名單;但沒有被匹配到的主機由默認規則處理,即為允許;
3、只出現hosts deny: 定義黑名單;出現在名單中的都被拒絕;
4、二者同時出現:先檢查hosts allow,如果匹配就allow,否則,檢查hosts deny,如果匹配則拒絕;如二者均無匹配,則由默認規則處理,即為允許;

3.創建密碼文件

文件格式(明文): username : password

[root@localhost ~]# echo "myuser:mypass" >  /etc/rsyncd.passwd  [root@localhost ~]# chmod 600 /etc/rsyncd.passwd     #權限必須為600
4.啟動服務
[root@localhost ~]# service xinetd  start
5.使用方法 ( 後三種模式 )

a. 從遠程rsync服務器中拷貝文件到本地機。當SRC路徑信息包含”::”分隔符時啟動該模式。

[root@localhost ~]# rsync -av [email protected]::mydata /tmp/     #myuser為rsync服務器的一個用戶

b. 從本地機器拷貝文件到遠程rsync服務器中。當DST路徑信息包含”::”分隔符時啟動該模式。

[root@localhost ~]# rsync -av install.log.syslog  [email protected]::mydata 

c. 列遠程機的文件列表。這類似於rsync傳輸,不過只要在命令中省略掉本地機信息即可。

[root@localhost ~]# rsync -av [email protected]::mydata

原文來自:http://www.tianfeiyu.com/?p=1975

本文地址:http://www.linuxprobe.com/use-rsync-file.html


http://xxxxxx/Linuxjc/1184708.html TechArticle

Copyright © Linux教程網 All Rights Reserved