2021-05-12 14:32:11
Rsync檔案同步工具初步搭建及設定詳解
前段時間因公司需求,需要把備份的檔案進行同步儲存,後面就想到了我們大家都最熟悉的檔案同步工作Rsync,於是就搗鼓了一下午時間,然後總結了下大概過程和引數詳情。
首先了解了下rsync同步的大致原理:Rsync 同步使用所謂的“Rsync 演演算法”來使本地和遠端兩個主機之間的檔案達到同步,這個演算法只傳送兩個檔案的不同部分,而不是每次都整份
傳送,因此傳輸的速度相當快。Rsync伺服器端會開啟一個873的服務通道(port),等待用戶端 Rsync 連線。連線時,Rsync 伺服器端會檢查口令(passwd)是否相符,若通過口令查核,
則可以開始進行檔案傳輸。第一次連通完成時,會把整份檔案傳輸一次,下一次就只傳送二個檔案之間的差異部份。
接下來我們就來初步搭建,先完成任務需求。
Rsync伺服器端(192.168.177.130)
安裝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.lock
log 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 = yes
read only = yes
write only = no
hosts allow = 192.168.177.131
hosts deny = *
list = false
uid = 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 #表示可以pull
write only = no #表示不可以push
hosts 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用戶端(192.168.177.131)
安裝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 刪除用戶端多餘檔案
總結的還不到位,希望有問題可以指出!
CentOS 6.5 rsync+inotify實現資料實時同步備份 http://www.linuxidc.com/Linux/2016-11/137655.htm
rsync+inotify實現資料的實時同步 http://www.linuxidc.com/Linux/2017-01/139778.htm
rsync+inotify實現伺服器之間檔案實時同步詳解 http://www.linuxidc.com/Linux/2016-11/137659.htm
Rsync結合Inotify 實時同步設定 http://www.linuxidc.com/Linux/2017-02/140877.htm
RSync實現資料備份 http://www.linuxidc.com/Linux/2017-06/144913.htm
inotify+rsync實現資料實時同步 http://www.linuxidc.com/Linux/2017-10/147901.htm
rsync+inotify實現資料的實時備份 http://www.linuxidc.com/Linux/2016-11/137630.htm
rsync+inotify實現資料自動同步 http://www.linuxidc.com/Linux/2017-03/141717.htm
使用rsync實現資料實時同步備份 http://www.linuxidc.com/Linux/2017-05/143462.htm
相關文章