天天看點

Rsync檔案備份服務介紹

Rsync檔案備份服務介紹

Rsync介紹

什麼是rsync

rsync是一款開源、快速、多功能、可實作全量及增量的本地或遠端資料備份的優秀軟體。rsync軟體适用于Unix/linux/Windows等多種作業系統平台。

rsync英文稱為remote synchronization(n,同步),從軟體的名稱就可以看出來,rsync具有可使本地和遠端兩台主機之間的資料快速複制、遠端備份的功能。這個功能類似于ssh帶的scp指令,但是又優于scp指令的功,scp每次都是全量拷貝,而rsync可以增量拷貝。當然,rsync也可以在本地主機的不同分區或目錄之間全量及增量的複制資料,這又類似cp指令。但是同樣也優于cp指令,cp每次都是全量拷貝,而rsync可以增量拷貝。

在備份複制資料的時候,預設情況下,rsync通過其獨特的“quick check”算法,它僅複制大小或者最後修改時間發生變化的檔案或目錄,當然也可根據權限、屬主等屬性的變化同步,但是需要指定相應的參數,甚至可以實作隻同步一個檔案裡有變化的内容部分,是以,可以實作快速的同步備份資料,即增量複制。而scp、cp都是全量複制。

Cent6和7上預設版本Rsync 3.x是一邊比對差異,一邊對差異部分進行複制。

總結:一個rsync相當于scp、cp、rm,而且更優

官網:

rsync端口:873

rsync運作模式:C/S

Rsync的特性

-支援拷貝普通檔案與特殊檔案,如連結檔案、裝置檔案等。
-支援排除指定檔案或目錄同步的功能,相當于打包指令tar的排除功能。
-可以做到保持原檔案或目錄的權限、時間、軟硬連結、屬主、組等所有屬性均不改變。
-可實作增量複制,即隻複制發生變化的資料,是以資料傳輸效率很高。
-可以使用 rcp、rsh、SSH 等方式來配合進行隧道加密傳輸檔案(Rsync 本身不對資料加密)。
-可以通過 socket(程序方式)傳輸檔案和資料(服務端和用戶端)。
-支援匿名或認證(無須系統使用者) 程序模式傳輸,安全地進行資料備份及鏡像。
           

scp指令介紹

## 推(上傳):
比如把web01的1.txt推到backup
0 ✓ 08:46:58 root@web01,172.16.1.7:~ # vim 1.txt 要輸點東西進去
 0 ✓ 08:47:36 root@web01,172.16.1.7:~ # scp -r /root/1.txt [email protected]:/tmp
輸入密碼即可


 0 ✓ 08:48:55 root@backup,172.16.1.41:/tmp # ll   看一眼,backup機已經有了
total 60
-rw-r--r--  1 root root     7 Sep 13 08:56 1.txt




## 拉(下載下傳):反過來  
scp -r [email protected]:/tmp/1.txt /opt    


# 注:scp基于SSH協定,停ssh就不能用了。scp是全量拷貝,rsync支援增量           

關于備份類型

全量備份
将資料全部備份出來(效率低下)

增量備份
基于上一次的備份,将新增資料進行備份

差異備份
基于全量備份,新增的資料進行備份
           

rsync的三種傳輸模式

## 1、本地模式(類似cp,但rsync有增量方式)
本地拷貝指令:
Local: rsync [OPTION...] SRC... [DEST]
       rsync 選項       本地源檔案 本地目标路徑
預設是檔案
-a 目錄


# 例如
rsync -a /etc/ /tmp   隻是将/etc下的檔案和目錄傳輸過去,不包括etc目錄本體
rsync -a /etc /tmp     将/etc目錄及其下所有東西都傳輸  




## 2、遠端模式(通過ssh傳輸資料,類似scp指令)
# 推
Push: rsync [OPTION...] SRC... [USER@]HOST:DEST
推    rsync 選項 要推的本地檔案   遠端主機@IP:目标路徑
# 例如
[root@web01 ~]# rsync -avz /root/1.txt [email protected]:/tmp/
[email protected]'s password: ...
效果同scp
[root@web01 ~]# scp /root/1.txt [email protected]:/tmp/


# 拉  
Pull: rsync [OPTION...] [USER@]HOST:SRC... [DEST]
拉    rsync 選項 遠端主機@IP:要下載下傳的檔案 下載下傳到本地的位置  
# 例如
[root@web01 ~]# rsync -avz [email protected]:/etc/hostname ./   #拉取遠端檔案
[root@web01 ~]# rsync -avz [email protected]:/root/ /backup/   #拉取遠端目錄下的所有檔案
[root@web01 ~]# rsync -avz [email protected]:/root /backup/   #拉取遠端目錄以及目錄下的所有檔案


# 說明:實際工作中why更多是用守護程序模式
1, 遠端模式和scp差不多,基于ssh,要用到系統使用者和密碼,不安全,是以我們用守護程序模式
2, 守護程序模式不需要ssh協定,服務啟動後,自帶端口873
3, 守護程序模式可以設定匿名使用者,不需要使用系統使用者,更安全           
# 3、守護程序模式


守護程序模式是在c/s之間進行資料複制。通常需要服務端部署rsync守護程序模式服務,然後在用戶端執行指令,實作資料推拉等操作


#推
Push: rsync [OPTION...] SRC... [USER@]HOST::DEST
    rsync   選項     本地資源 虛拟使用者名@IP::子產品名
例如:将nfs的 /etc/shadow推送至rsync備份伺服器的backup子產品
[root@nfs ~]# rsync -avz /etc/shadow [email protected]::backup


#拉
Pull: rsync [OPTION...] [USER@]HOST::SRC... [DEST]
    rsync   選項       虛拟使用者名@主機IP::子產品名 拉到本機哪裡
例如:把backup子產品資料拉到本機/opt下
[root@nfs ~]# rsync -avz [email protected]::backup /opt           

rsync選項總結

# -a   歸檔模式傳輸, 等于-tropgDl  
----------------------------------
-t   保持檔案時間資訊
-r   遞歸傳輸目錄及子目錄
-o   保持檔案屬主資訊 owner
-p   保持檔案權限 permit
-g   保持檔案屬組資訊
-D   保持裝置檔案資訊 device
-l   保留軟連結

# -v   顯示過程
# -z   傳輸時壓縮以提高效率,到那邊自動解壓
# -P   顯示進度
-L     保留軟連結指向的目标檔案
-e     傳遞參數



--exclude=PATTERN     指定排除不需要傳輸的檔案模式
--exclude-from=file(eg:paichu.txt)   指定排除多個
vim paichu.txt

--bwlimit=100         限速XXX傳輸,看需求用
--partial             斷點續傳(很垃圾的伺服器可能會斷電那種,保險起見才會用)
                      比如迅雷你下了一半電腦突然關機,再開機不會重新下。但網頁的話閃退就得重下
                     
# --delete               決定資料是否要同步,有這個就同步
# --password-file=xxx   使用密碼檔案

           

rsync企業常見應用場景

1、伺服器間周期性資料備份:手動或定時任務+rsync

見rsync實戰(二)

适合:網站程式檔案;系統配置檔案變更

2、NFS到Backup伺服器的實時複制:inotify/sersync+rsync

利用rsync結合inotify/sersync做實時資料複制。根據nfs上目錄的變化,将變化的資料通過inotify/sersync結合rsync指令複制到backup伺服器。

适合:使用者上傳的普通檔案

實踐見後續中期架構。

繼續閱讀