一、rsync介紹
Rsync是一款功能強大的數據同步工具,它可以在本地或者網路之間進行文件同步。Rsync是一個開源軟體,可以跨平台運行,並且支持文件壓縮傳輸,只傳輸不同之處,同時可以保留文件許可權、時間戳等信息。rsync 支持 ssh,rsh,直接使用 socket 方式進行傳輸,同時支持許多過濾規則與操作,如:壓縮傳輸、刪除已被刪除文件、刪除目錄等等,比起傳統的scp,rsync的效率較高,壓縮協議可提高網路帶寬使用率。
二、rsync特點
1、速度快:rsync採用特有的演算法對目標項與本地項的比較結果進行最小化處理。每一次同步操作,只會對兩端不同的地方進行備份。rsync的獨有演算法可以讓同步速度達到驚人的快速。rsync在數據超過多個G的情況下,不開啟壓縮傳輸,傳輸速度遠比scp快。
2、支持備份文件的許可權、時間、鏈接、設備文件等資源屬性:這是rsync的另一個亮點。rsync支持defalut、archive、link、copy、copy-devices、hard-links、verbose等屬性設置,使得備份文件幾乎跟原件沒有什麼區別,而其他備份工具一般只能做到數據的同步,無法反映原件屬性。
3、支持刪除對方已經刪除的文件:這也是rsync其他備份工具的一大優勢。rsync支持–delete選項,能刪除對方端已經刪除的文件,很好地維護了文件的一致性。
三、rsync使用步驟
1、安裝rsync。在centos7中,rsync工具默認安裝,可以通過以下命令驗證是否安裝:
rsync --version
2、rsync使用示例。
(1)基本命令
rsync [options] source destination
(2)實戰示例:同步遠程文件夾到本地
rsync -vzrtopg --exclude "*.log" --exclude "*.bak" --progress -e "ssh -p 22" root@192.168.1.1:/usr/local/src /home/rsync
參數含義:
-v:詳細模式輸出
-z:使用壓縮模式傳輸文件
-r:遞歸同步子目錄
-t:保持文件時間屬性
-o:保持文件屬主屬性
-p:保持文件許可權屬性
-g:保持文件屬組屬性
–exclude:過濾傳輸文件,忽略指定文件類型
–progress:傳輸進度條
-e:傳輸加密協議
四、rsync常用命令選項
1、指定輸出信息到文件或tty輸出
rsync [options] source destination > logfile 2>&1
2、同步本地目錄
rsync -vzrtopg --exclude "*.log" --exclude "*.bak" --progress /usr/local/src /home/rsync
3、同步本地目錄到遠程主機
rsync -vzrtopg --exclude "*.log" --exclude "*.bak" --progress /usr/local/src root@192.168.1.1:/home/rsync
4、同步遠程主機的目錄到本地
rsync -vzrtopg --exclude "*.log" --exclude "*.bak" --progress root@192.168.1.1:/usr/local/src /home/rsync
5、同步本地目錄到遠程主機(加密傳輸,指定埠)
rsync -vzrtopg --exclude "*.log" --exclude "*.bak" --progress -e "ssh -p 22" /usr/local/src root@192.168.1.1:/home/rsync
五、rsync安全性設置
為了保證rsync數據傳輸過程中的安全性,我們可以定製化rsync的參數。可以設置密碼或是在生成ssh key的基礎上增加密鑰驗證,如下:
1、添加rsync用戶 useradd rsync -s /bin/false passwd rsync 2、生成key ssh-keygen -t rsa 3、指定rsync客戶端IP vim /etc/rsyncd.conf [module] path = /data comment = just for testing uid = nobody gid = nobody read only = no auth users = rsync secrets file = /etc/rsyncd.passwd hosts allow = 192.168.1.27 4、修改rsync用戶許可權 chmod 600 /etc/rsyncd.passwd 5、設置rsync用戶密碼 rsync rsync:2001:backup 6、重新載入配置文件 rsync --daemon --port=873 7、設置root用戶的秘鑰認證 ssh-keygen -t rsa ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.1.30 8、備份遠程機器文件到本地 rsync -vzrtopg --delete -e ssh root@192.168.1.30:/data/ /data_backup/
六、rsync常見錯誤及解決方法
1、Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).
解決方法:確認是否開啟root用戶密碼認證
2、rsync error: error in rsync protocol data stream (code 12) at io.c(226)
解決方法:確認遠程伺服器的AllowTcpForwarding是否為yes狀態;修改/etc/ssh/sshd_config文件內容:AllowTcpForwarding yes
3、rsync error: error starting client-server protocol (code 5) at main.c(1503) [sender=3.0.9]
解決方法:修改/etc/ssh/sshd_config文件內容:PermitRootLogin yes 和 RSAAuthentication yes
以上是CentOS7下rsync備份詳解,使用rsync進行數據備份,可以更有效、更安全的管理系統數據,尤其在生產環境下,使用rsync完成數據遷移和備份工作是一個不錯的選擇。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/301201.html