Rsync


1  什么是Rsync?

       Rsync是一款開源的,快速的,多功能的,可實現全量及增量的本地或遠程數據同步備份的優秀工具。Rsync軟件適用於unix/linux/windows等多種操作系統平台。

 2  Rsync的特性如下

  • 支持拷貝特殊文件如鏈接文件,設備等
  • 可以有排除(tar?find?)指定文件或目錄同步的功能,相當於打包命令tar的排除功能
  • 可以做到保持原文件或目錄的權限,時間,軟硬鏈接,屬主,組等屬性均不改變-p
  • 可以實現增量同步,既只同步發生變化的數據,因此數據傳輸效率很高(tar-N)
  • 可以使用rcp,rsh,ssh等方式來配合傳輸文件(rsync本身不對數據加密)
  • 可以通過socket(進程方式)傳輸文件和數據(服務端和客戶端)
  • 支持匿名的或認證(無需系統用戶)的進程模式傳輸,可實現方便安全的進行數據備份及鏡像                                                                                                                                                                              
  • 3 Rsync一共幾種模式?

    • 單個主機本地之間的數據傳輸(此時類似於cp命令的功能)
    • 借助rcp,ssh等通道來傳輸數據(此時類似於scp命令的功能)
    • 以守護進程(socket)的方式傳輸數據(這個是rsync自身的重要功能)
    • 4  rsync 命令常用參數選項說明
    •  -v,--verbose 詳細模式輸出,傳輸時的進度等信息 
    •  -z,--compress 傳輸時進行壓縮以提高傳輸效率,--compress-level=NUM可按級別壓縮。 
    •  -a,--archive 歸檔模式,表示以遞歸方式傳輸文件,並保持所有文件屬性,等於-rtopgD1(字母1)

       

      -r,--recursive

      對子目錄以遞歸模式,即目錄下的所有目錄都同樣傳輸,注意是小寫r

      -t,--times

      保持文件時間信息

      -o,--owner

      保持文件屬主信息

      -p,--perms

      保持文件權限

      -g,--group

      保持文件屬組信息

      -P,--progress

      顯示同步的過程及傳輸時的進度等信息

      -D,--devices

      保持設備文件信息

      -l,--links

      保留軟鏈接

      -e,--rsh=COMMAND

      使用的信道協議(remote shell),指定替代rsh的shell程序。例如:ssh --exclude=PATTERN 指定排除不需要傳輸的文件模式(和tar參數一樣)

      --bwlimit=RATE

      limit socket I/O bandwidth

      二, 開始部署rsync服務--Rsync服務器端A-Server操作過程:

       1. 配置rsyncd.conf

        首先確認軟件是否安裝:(which rsync)

    •         沒有就安裝 :            rpm -qa rsync

    •   然后創建rsyncd.conf文件,並添加如下內容(文件默認不存在)

    •   uid = rsync# (用戶)
    • . gid = rsync#  (組)

      . use chroot = no# 程序安全設置

      . max connections = 200. # 客戶端連接數

      . timeout = 300 # 超時時間

      . pid file = /var/run/rsyncd.pid# 進程號文件位置

      . lock file = /var/run/rsync.lock# 進程鎖

      . log file = /var/log/rsyncd.log# 日志文件位置

      . [backup]

        path = /backup/ # 使用目錄

      . ignore errors # 有錯誤時忽略

       

    • . read only = false#可讀可寫(true或false)

      . list=false# 阻止遠程列表(不讓通過遠程方式看服務端有啥)

      . hosts allow = 192.168.232.0/24#允許IP

      . hosts deny = 0.0.0.0/32 #禁止IP

       

    • . auth users = rsync_backup # 虛擬用戶

        secrets file = /etc/rsync.password#存放用戶和密碼的文件

    • rsyncd.conf參數

      參數說明

      uid=rsync

      rsync使用的用戶。

      gid=rsync

      rsync使用的用戶組(用戶所在的組)

      use chroot=no

      如果為true,daemon會在客戶端傳輸文件前“chroot to the path”。這是一種安全配置,因為我們大多數都在內網,所以不配也沒關系

      max connections=200

      設置最大連接數,默認0,意思無限制,負值為關閉這個模塊

      timeout=400

      默認為0,表示no timeout,建議300-600(5-10分鍾)

      pid file

      rsync daemon啟動后將其進程pid寫入此文件。如果這個文件存在,rsync不會覆蓋該文件,而是會終止

      lock file

      指定lock文件用來支持“max connections”參數,使得總連接數不會超過限制

      log file

      不設或者設置錯誤,rsync會使用rsyslog輸出相關日志信息

      ignore errors

      忽略I/O錯誤

      read only=false

      指定客戶端是否可以上傳文件,默認對所有模塊為true

      list=false

      是否允許客戶端可以查看可用模塊列表,默認為可以

      hosts allow

      指定可以聯系的客戶端主機名或和ip地址或地址段,默認情況沒有此參數,即都可以連接

      hosts deny

      指定不可以聯系的客戶端主機名或ip地址或地址段,默認情況沒有此參數,即都可以連接

      auth users

      指定以空格或逗號分隔的用戶可以使用哪些模塊,用戶不需要在本地系統中存在。默認為所有用戶無密碼訪問

      secrets file

      指定用戶名和密碼存放的文件,格式;用戶名;密碼,密碼不超過8位

      [backup]

      這里就是模塊名稱,需用中括號擴起來,起名稱沒有特殊要求,但最好是有意義的名稱,便於以后維護

      path

      這個模塊中,daemon使用的文件系統或目錄,目錄的權限要注意和配置文件中的權限一致,否則會遇到讀寫的問題

       

    • 1. 案例:某DBA做數據同步,帶寬占滿,導致用戶無法訪問網站。

       
      1. rsync -avz dbfile 10.0.0.41:/backup #沒有給帶寬做限制
      2. rsync -avz --bwlimit=100 dbfile 172.16.1.41:/backup #限定了帶寬
    • 1. 創建共享目錄及添加rsync程序用戶

    •     useradd -M -s /sbin/nologin rsync #創建rsync用戶

      2 啟動服務:

    •     rsync --daemon

      3 將A-Server上的/backup文件夾更改屬主rsync

    •       chown -R rsync /backup
    • 4 創建rsync虛擬賬戶名和密碼

    •     echo "rsync_backup:123456" >/etc/rsync.password
    • 5  將賬戶密碼文件的權限設置為600(必須否則失敗)

    •    chmod 600 /etc/rsync.password
    • 6  加入開機啟動
    •     echo "rsync --daemon" >> /etc/rc.local
    • 開始部署rsync服務--Rsync客戶端B-Server

    • 1 只需要創建密碼文件     echo "123456" > /etc/rsync.password

    • 2 將密碼文件的權限設置為600(必須否則失敗)     chmod 600 /etc/rsync.password

    •  Rsync 優缺點

       

      1. rsync優點:

      1,增量備份,支持socket(daemon),集中備份(支持推拉,都是以客戶端為參照物)。 
      2,遠程SHELL通道模式還可以加密(SSH)傳輸,socket(daemon)需要加密傳輸,可以利用vpn服務或ipsec服務

       

      2.rsync缺點:

      1,大量小文件時候同步的時候,比對時間較長,有的時候,同步過程中,rsync進程可能會停止,僵死了。 
      2,同步大文件,10G這樣的大文件有時也會出問題,中斷。未完整同步前,是隱藏文件,可以通過續傳(--partial)等參數實現傳輸 
      3,一次性遠程拷貝可以用scp,大量小文件要打成一個包再拷貝。(重要)

    •  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM