Rsync基本概述

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

# rsync簡介

rsync英文稱為remote synchronization,從軟件的名稱就可以看出來,rsync具有可使本地和遠程兩台主機之間的數據
快速複製同步鏡像、遠程備份的功能,這個功能類似於ssh帶的scp命令,但是又優於scp命令的功能,scp每次都是全量
拷貝,而rsync可以增量拷貝。當然,rsync還可以在本地主機的不同分區或目錄之間全量及曾量的複製數據,這又類似
cp命令。但是同樣也優於cp命令,cp每次都是全量拷貝,而rsync可以增量拷貝。
在同步數據的時候,默認情況下,rsync通過其獨特的“quick check”算法,它僅同步大小或者最後修改時間發生變化的文
件或目錄,當然也可根據權限、屬主等屬性的變化同步,但是需要制定相應的參數,甚至可以實現只同步一個文件裏有變
化的內容部分,所以,可是實現快速的同步備份數據。

rsync監聽端口:873
rsync運行模式:C/S*

注意:利用rsync還可以實現刪除文件和目錄的功能,這又相當於rm命令,一個rsync相當於scp、cp、rm,但是還優於他們的每一個命令。


全量備份
假設客户端上有 file1 file2 file3 文件,服務端上有 file1 文件,現要將客户端上的數據備份至服務端

linux上的rsync命令詳解_數據


全量備份,將客户端所有的數據內容 file1 file2 file3 全部備份至服務端 (效率低下, 佔用空間)


增量備份

linux上的rsync命令詳解_客户端_02


增量備份,將客户端的 file2 file3 增量備份至服務端 (提高備份效率,節省空間, 適合異地備份 )

Rsync傳輸模式

Rsync使用三種主要的數據傳輸方式
1.本地方式
2.遠程方式
3.守護進程


本地傳輸方式

# 本地拷貝數據命令
Local: rsync [OPTION...] SRC... [DEST]
[root@backup ~]# rsync -avz /etc/passwd .
rsync		# 備份命令
[OPTION]	# 參數選項
SRC...		# 備份源文件
[DEST]		# 備份目的路徑
案例:將/etc/passwd文件備份到當前/root/目錄下

linux上的rsync命令詳解_數據_03


檢驗rsync的增量拷貝

案例:
創建環境:

linux上的rsync命令詳解_數據_04


第一步:將1.txt、2.txt、3.txt文件備份到/tmp/目錄下


linux上的rsync命令詳解_客户端_05


第二步:在/root/test/目錄下創建4.txt、5.txt文件,再次備份


linux上的rsync命令詳解_客户端_06


注:只增量備份了4.txt和5.txt兩個沒有的文件,如果文件變動也會再次覆蓋備份。


linux上的rsync命令詳解_客户端_07


注意:如果目錄後面加 \ ,則只會備份目錄下的內容不會備份目錄本身。

linux上的rsync命令詳解_服務端_08


遠程模式

PULL

Pull: rsync [OPTION...] [USER@]HOST:SRC... [DEST]
拉取(下載到本地):
rsync	# 命令
-avz	# 參數
USER@	# 用户
HOST	# 主機的IP地址、域名
SRC	# 備份源文件
DEST	# 備份目錄
PULL案例

linux上的rsync命令詳解_客户端_09

客户端10.0.0.7:
[root@custom ~]# rsync -avz root@10.0.0.41:/root/test ./

linux上的rsync命令詳解_服務端_10

PUSH

Push:rsync [OPTION...] SRC... [USER@]HOST:DEST
推(上傳到另一端服務器上)
rsync	# 命令
-avz	# 參數
SRC	# 備份源文件
USER@	# 用户
HOST	# IP地址
DEST	# 備份位置
PUSH案例

linux上的rsync命令詳解_數據_11

客户端10.0.0.7:
[root@custom ~]# rsync -avz secret.txt root@10.0.0.41:/root/


注意:如果不加用户,默認以當前系統登錄用户身份進行遠程連接,但是要對方的此用户名和密碼10.0.0.7默認使用root進行遠程遠程10.0.0.41,需要提供10.0.0.41的root的密碼10.0.0.7默認使用test01用户進行遠程連接遠程10.0.0.41,則需要提供10.0.0.41的test01的密碼

linux上的rsync命令詳解_客户端_12

使用域名傳輸文件

連接但是被拒絕了T.T

linux上的rsync命令詳解_數據_13

守護進程模式(企業常用)

1.配置服務:
[root@server ~]# cat /etc/rsyncd.conf 
uid = rsync	# 運行進程的用户
gid = rsync	# 運行進程的用户組
port = 873	# 監聽端口
fake super = yes	# 無需讓rsync以root身份運行,允許接收文件的完整屬性
use chroot = no	# 禁錮推送的數據至某個目錄,不允許跳出該目錄
max connections = 200	# 最大連接數
timeout = 600	# 超過時間
ignore errors	# 忽略錯誤信息
read only = false	# 對備份數據可讀寫(false)
list = false	# 不允許查看模塊信息
auth users = rsync_backup	# 定義虛擬用户,作為連接認證用户
secrets file = /etc/rsync.passwd	# 定義rsync服務用户連接認證密碼文件路徑
log file = /var/log/rsyncd.log
#####################################
[backup]	# 定義模塊信息
comment = welcome to oldboyedu backup!	# 模塊註釋信息
path = /backup	# 定義接收備份數據目錄
2.根據配置文件創建必要的數據
【1】創建rsync虛擬用户
【2】創建密碼文件
【3】修改密碼文件權限為600
【4】創建/backup備份目錄
【5】修改/backup備份目錄的屬主、屬組(chown)
3.啓動rsyncd服務、並設置開機自啓
4.測試檢查873端口是否開啓

步驟二:

【1】創建rsync虛擬用户

linux上的rsync命令詳解_數據_14

【2】創建密碼文件

linux上的rsync命令詳解_數據_15

【3】修改密碼文件的權限為600

linux上的rsync命令詳解_數據_16

【4、5】創建/backup目錄、修改/backup目錄屬主、屬組

linux上的rsync命令詳解_數據_17

步驟三:

啓動rsyncd服務、並設置開機自啓

linux上的rsync命令詳解_服務端_18

步驟四:

測試檢查873端口是否開啓

linux上的rsync命令詳解_客户端_19

備份實例

linux上的rsync命令詳解_數據_20

【備份】

linux上的rsync命令詳解_服務端_21


【查看備份目錄】

linux上的rsync命令詳解_數據_22