CentOS 7 rsync

來源:互聯網
上載者:User

標籤:

CentOS 7 rsync


1)軟體簡介

Rsync 是一個遠端資料同步工具,可通過 LAN/WAN 快速同步多台主機間的檔案。Rsync 本來是用以取代rcp 的一個工具,它當前由 Rsync.samba.org 維護。Rsync 使用所謂的“Rsync 演算法”來使本地和遠程兩個主機之間的檔案達到同步,這個演算法只傳送兩個檔案的不同部分,而不是每次都整份傳送,因此速度相當快。運行 Rsync server 的機器也叫 backup server,一個 Rsync server 可同時備份多個 client 的資料;也可以多個Rsync server 備份一個 client 的資料。

Rsync 可以搭配 rsh 或 ssh 甚至使用 daemon 模式。Rsync server 會開啟一個873的服務通道(port),等待對方 Rsync 串連。串連時,Rsync server 會檢查口令是否相符,若通過口令查核,則可以開始進行檔案傳輸。第一次連通完成時,會把整份檔案傳輸一次,下一次就只傳送二個檔案之間不同的部份。

Rsync 支援大多數的類 Unix 系統,無論是 Linux、Solaris 還是 BSD 上都經過了良好的測試。此外,它在windows 平台下也有相應的版本,比較知名的有 cwRsync 和 Sync2NAS。

Rsync 的基本特點如下:

可以鏡像儲存整個分類樹和檔案系統;
可以很容易做到保持原來檔案的許可權、時間、軟永久連結等;
無須特殊許可權即可安裝;
最佳化的流程,檔案傳輸效率高;
可以使用 rcp、ssh 等方式來傳輸檔案,當然也可以通過直接的 socket 串連;
支援匿名傳輸。


2)核心演算法

假定在名為 α 和 β 的兩台電腦之間同步相似的檔案 A 與 B,其中 α 對檔案A擁有訪問權,β 對檔案 B 擁有訪問權。並且假定主機 α 與 β 之間的網路頻寬很小。那麼 Rsync 演算法將通過下面的五個步驟來完成:

β 將檔案 B 分割成一組不重疊的固定大小為 S 位元組的資料區塊。最後一塊可能會比 S 小。
β 對每一個分割好的資料區塊執行兩種校正:一種是32位的滾動弱校正,另一種是128位的 MD4 強校正。
β 將這些校正結果發給 α。
α 通過搜尋檔案 A 的所有大小為 S 的資料區塊(位移量可以任選,不一定非要是 S 的倍數),來尋找與檔案B 的某一塊有著相同的弱校正碼和強校正碼的資料區塊。這項工作可以藉助滾動校正的特性很快完成。
α 發給 β 一串指令來組建檔案 A 在 β 上的備份。這裡的每一條指令要麼是對檔案 B 經擁有某一個資料區塊而不須重傳的證明,要麼是一個資料區塊,這個資料區塊肯定是沒有與檔案 B 的任何一個資料區塊匹配上的。


3組態管理

1 關閉selinux

臨時關閉 setenforce 0

永久關閉 $vi /etc/sysconfig/selinux
SELINUX=disabled


2 安裝rsync 系統內建

開機啟動 systemctl enable rsyncd


3 佈建服務端
$ vi /etc/rsyncd.conf

# /etc/rsyncd: configuration file for rsync daemon mode# See rsyncd.conf man page for more options.# configuration example:uid = rootgid = rootuse chroot = nomax connections = 2strict modes = yesport = 873pid file = /var/run/rsyncd.pidlock file = /var/run/rsync.locklog file = /var/log/rsyncd.log[hadoop]path = /opt/hadoop/etc/hadoop/ # 資料存放位置comment = HADOOPread only = yeslist = noauth users = hadoop # 與系統使用者無關secrets file = /etc/rsyncd.secret#hosts allow = 192.168.6.1 #設定允許訪問的用戶端多個用戶端用空格隔開#hosts deny = * #設定不允許訪問的黑名單[zookeeper] #這裡相當於一個區分符,如果要同步多個檔案夾就在這裡區分path = /opt/zookeeper/conf # 資料存放位置comment = ZOOKEEPERauth users = hadoopsecrets file = /etc/rsyncd.secrets #存放rsync密碼的檔案read only = nolist = no

 

配置rsync密碼(在上邊的設定檔中已經寫好路徑)/etc/rsyncd.secrets(名字隨便寫,只要和上邊設定檔裡的一致即可),格式(一行一個使用者)
$ vi /etc/rsyncd.secrets

hadoop:hadoop # 使用者:密碼hadoop1:hadoop1

 

配置rsync密碼檔案許可權

chown root.root /etc/rsyncd.secrets
chmod 600 /etc/rsyncd.secrets

4 啟動 驗證

$ systemctl start rsyncd

$ netstat -apn | grep rsync
tcp 0 0 0.0.0.0:873 0.0.0.0:* LISTEN 2688/rsync
tcp6 0 0 :::873 :::* LISTEN 2688/rsync

 5 用戶端配置

1 配置三個過程就可以了
1.1 設定密碼檔案
1.2 測試rsync執行指令
1.3 將rsync指令放入周期任務(crontab)

設定密碼檔案
$ vi /etc/rsyncd.secrets
hadoop #這裡只需要寫密碼

$ chown root:root /etc/rsyncd.secrets # 注意必須給許可權
$ chmod 600 /etc/rsyncd.secrets # 必須修改許可權

 

測試rsync執行指令

上傳 rsync -avz --password-file=/etc/rsyncd.secrets /opt/hadoop/etc/hadoo [email protected]ode::hadoop 
下載 rsync -avz --progress --password-file=/etc/rsyncd.secrets [email protected]::hadoop /opt/hadoop/etc/hadoop

 

rsync的參數的說明:
-a 相當於 -rlptgoD 的集合
-u 等同於 –update,在目標檔案比源檔案新的情況下不更新
-v 顯示同步的檔案
–progress 顯示檔案同步時的百分比進度、傳輸速率

將rsync指令放入周期任務(crontab)

CentOS 7 rsync

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.