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 文件,現要將客户端上的數據備份至服務端
全量備份,將客户端所有的數據內容 file1 file2 file3 全部備份至服務端 (效率低下, 佔用空間)
增量備份
增量備份,將客户端的 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/目錄下
檢驗rsync的增量拷貝
案例:創建環境:
第一步:將1.txt、2.txt、3.txt文件備份到/tmp/目錄下
第二步:在/root/test/目錄下創建4.txt、5.txt文件,再次備份
注:只增量備份了4.txt和5.txt兩個沒有的文件,如果文件變動也會再次覆蓋備份。
注意:如果目錄後面加 \ ,則只會備份目錄下的內容不會備份目錄本身。
遠程模式
PULL
Pull: rsync [OPTION...] [USER@]HOST:SRC... [DEST]
拉取(下載到本地):
rsync # 命令
-avz # 參數
USER@ # 用户
HOST # 主機的IP地址、域名
SRC # 備份源文件
DEST # 備份目錄
PULL案例
客户端10.0.0.7:
[root@custom ~]# rsync -avz root@10.0.0.41:/root/test ./
PUSH
Push:rsync [OPTION...] SRC... [USER@]HOST:DEST
推(上傳到另一端服務器上)
rsync # 命令
-avz # 參數
SRC # 備份源文件
USER@ # 用户
HOST # IP地址
DEST # 備份位置
PUSH案例
客户端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的密碼
使用域名傳輸文件
連接但是被拒絕了T.T
守護進程模式(企業常用)
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虛擬用户
【2】創建密碼文件
【3】修改密碼文件的權限為600
【4、5】創建/backup目錄、修改/backup目錄屬主、屬組
步驟三:
啓動rsyncd服務、並設置開機自啓
步驟四:
測試檢查873端口是否開啓
備份實例
【備份】
【查看備份目錄】