您好,登錄后才能下訂單哦!
這篇文章主要介紹“Rsync如何實現文件同步”的相關知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望這篇“Rsync如何實現文件同步”文章能幫助大家解決問題。
rsync的目的是實現本地主機和遠程主機上的文件同步(包括本地推到遠程,遠程拉到本地兩種同步方式),也可以實現本地不同路徑下文件的同步。
首先了解了下rsync同步的大致原理:Rsync 同步使用所謂的“Rsync 演算法”來使本地和遠程兩個主機之間的文件達到同步,這個算法只傳送兩個文件的不同部分,而不是每次都整份
傳送,因此傳輸的速度相當快。Rsync服務端會打開一個873的服務通道(port),等待客戶端 Rsync 連接。連接時,Rsync 服務端會檢查口令(passwd)是否相符,若通過口令查核,
則可以開始進行文件傳輸。第一次連通完成時,會把整份文件傳輸一次,下一次就只傳送二個文件之間的差異部份。
接下來我們就來初步搭建,先完成任務需求。
安裝rsync工具
yum -y install rsync
(默認會在etc目錄下生成一個rsync的配置文件)
編輯配置文件rsyncd.conf (配置文件里面是不能添加注釋,不然會報錯)
uid = root gid = root use chroot = no max connections = 4#pid file = /var/run/rsyncd.pid lock file = /var/run/rsyncd.locklog file = /var/log/rsyncd.log exclude = lost+found/ transfer logging = yes timeout = 600 ignore nonreadable = yes dont compress = *.gz *.tgz *.zip *.z *.Z *.rpm *.deb *.bz2 [test] path = /home/rsynctest ignore errors = yesread only = yes write only = no hosts allow = 192.168.177.131 hosts deny = * list = falseuid = root gid = root auth users = root secrets file = /etc/rsyncd.passwd
配置詳解
uid = root #設置運行rsync 進程的用戶gid = root use chroot = no #使用默認根目錄max connections = 4 #最大連接數#pid file = /var/run/rsyncd.pid #CentOS7中yum安裝 不需指定pid file 否則報錯lock file = /var/run/rsyncd.lock #指定支持 max connections 參數的鎖文件log file = /var/log/rsyncd.log #此文件定義完成后 系統會自動創建exclude = lost+found/ transfer logging = yes #使rsync服務器使用ftp格式的文件來記錄下載和上載操作在自己單獨的日志中timeout = 600 #通過該選項可以覆蓋客戶指定的IP超時時間。通過該選項可以確保rsync服務器不會永遠等待一個崩潰的客戶。超時單位為秒鐘,0表示沒有超時定義,這也是默認值。對于匿名rsync服務器來說,一個理想的數字是600。ignore nonreadable = yes #同步時跳過沒有權限的目錄dont compress = *.gz *.tgz *.zip *.z *.Z *.rpm *.deb *.bz2 #傳輸時不壓縮的文件[test] #此名字即客戶端使用rsync來同步的路徑path = /home/rsynctest #實際需要同步的路徑ignore errors = yes #指定rsyncd在判斷是否運行傳輸時的刪除操作時忽略server上的IP錯誤,一般來說rsync在出現IO錯誤時將將跳過--delete操作,以防止因為暫時的資源不足或其它IO錯誤導致的嚴重問題read only = yes #表示可以pullwrite only = no #表示不可以pushhosts allow = 192.168.177.131 #客戶端同步的地址hosts deny = * #指定不允許連接rsync服務器的機器,可以使用hosts allow的定義方式來進行定義。默認是沒有hosts deny定義。list = false #該選項設定當客戶請求可以使用的模塊列表時,該模塊是否應該被列出。如果設置該選項為false,可以創建隱藏的模塊。默認值是true。uid = root #獲取文件的身份gid = root auth users = root #客戶端獲取文件的身份 此用戶并不是本機中確實存在的用戶secrets file = /etc/rsyncd.passwd #用來認證客戶端的秘鑰文件 格式 USERNAME:PASSWD 此文件權限一定需要改為600,且屬主必須與運行rsync的用戶一致。(需自行創建)
創建對應密碼文件
vim /etc/rsyncd.passwd 格式如下:root:123456(前用戶名后密碼) 修改文件權限:chmon 600 /etc/rsyncd.passwd 啟動rsync服務端:sudo rsync --daemon(客戶端不用啟動)
安裝rsync工具
yum -y install rsync (默認會在etc目錄下生成一個rsync的配置文件)
配置認證密碼文件
echo passwd(只需要密碼就行) >> /etc/rsyncd.passwd
修改權限
chmon 600 /etc/rsyncd.passwd
測試文件同步情況:
rsync -avz --progress --password-file=/etc/rsyncd.passwd root@192.168.177.130::rsynctest /tmp/rsynctest/
測試完成!
命令參數詳解:
-v, –verbose 詳細模式輸出 -z, –compress 對備份的文件在傳輸時進行壓縮處理 -r, –recursive 對子目錄以遞歸模式處理 -t, –times 保持文件時間信息 -o, –owner 保持文件屬主信息 -p, –perms 保持文件權限 -g, –group 保持文件屬組信息 –-progress 顯示傳輸進度 --delete 刪除客戶端多余文件
關于“Rsync如何實現文件同步”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識,可以關注億速云行業資訊頻道,小編每天都會為大家更新不同的知識點。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。