rsync 远程同步——安全高效的异地备份策略
文章目錄
- 前言
- 一、rsync介紹
- 二、rsync源服務器
- 三、配置rsync源服務器
- 3.1 配置rsync源服務器的具體操作步驟(實操)
- 1 . 建立/etc/rsyncd.conf 配置文件
- ① 檢查rsync程序是否安裝,一般為默認安裝。
- ② 關閉防火墻和SElinux
- ③ 建立rsync配置文件
- 2 . 為備份賬戶創建數據文件
- ① 創建數據文件
- ② 修改權限
- ③ 安裝httpd服務
- ④ 站點目錄中創建index.html文件,賦予可讀權限
- 3 . 啟動 rsync 服務程序
- 四、使用rsync備份工具
- 4.1 rsync 命令的基本用法
- (1)命令格式及常用備份選項 從以上操作可以看出,備份的基本格式為“rsync [選項] 原始位置 目標位置”,其中常用 的一些命令選項如下所示,具體應根據實際需求選擇(如-avz)。
- (2)配置源的表示方法 在執行遠程同步任務時,rsync 命令需要指定同步源服務器中的資源位置。
- 環境準備工作:
- 1)將指定的資源下載到本地/opt 目錄下進行備份。
- 2)查看同步獲取的文件
- 3)免交互格式配置
- 4)免交互測試同步
- 5)加入到計劃性任務中
- 五、inotify+rsync 實時同步
- 六、配置inotify+rsync 實時同步
- 6.2 配置inotify+rsync 實時同步的具體操作步驟(實操)
- 1.修改rsync源服務器(192.168.80.10)配置
- ① 修改配置文件vim /etc/rsyncd.conf
- ② 重新啟動rsync服務
- ③ 賦予權限
- 2.調整 inotify 內核參數(在客戶端配置:192.168.80.20)
- ① 導入inotify安裝包并解壓
- ② 調大inotify內核參數,根據生產需求
- 3.安裝 inotify-tools(在客戶端配置:192.168.80.20)
- ① 編譯安裝inotify
- ② 創建用于同步的目錄
- 4.在客戶端(192.168.80.20)編寫觸發式同步腳本
- ① 創建自動監控同步腳本并賦予權限
- 5、驗證實驗,客戶端開啟監控
- ① 手動執行腳本,然后再重新開一個終端
- ② 在客戶端(192.168.80.10)/var/www/html/ 目錄下創建文件test.txt
- ③ 在源服務器進程查看是否完成實時同步
- ④ 賦予權限和刪除文件測試
- 七、使用rsync來實現快速刪除大量文件。
前言
正確、有效的備份方案是保障系統及數據安全的重要手段。
在服務器中,通常會結合計劃任務、Shell 腳本來執行本地備份。為了進一步提高備份的可靠性,使用異地備份也是非 常有必要的。
本篇博客主要介紹:rsync 工具的使用,以實現快速、安全、高效的異地備份。如針對 Web 站點的同步備份。
一、rsync介紹
rsync(Remote Sync,遠程同步)是一個開源的快速備份工具,可以在不同主機之間鏡像同步整個目錄樹,支持增量備份,并保持鏈接和權限,且采用優化的同步算法,傳輸前執行壓縮,因此非常適用于異地備份、鏡像服務器等應用。
rsync 的官方站點的網址是 http://rsync.samba.org/,目前最新版本是 3.1.3,由 Wayne Davison 進行維護。作為一種最常用的文件備份工具,rsync 往往是 Linux 和 UNIX 系統默 認安裝的基本組件之一。
二、rsync源服務器
在遠程同步任務中,負責發起 rsync 同步操作的客戶機稱為發起端,而負責響應來自客 戶機的 rsync 同步操作的服務器稱為同步源。
在同步過程中,同步源負責提供文件的原始位置,發起端應對該位置具有讀取權限,如圖下圖所示。
三、配置rsync源服務器
3.1 配置rsync源服務器的具體操作步驟(實操)
1 . 建立/etc/rsyncd.conf 配置文件
① 檢查rsync程序是否安裝,一般為默認安裝。
② 關閉防火墻和SElinux
③ 建立rsync配置文件
2 . 為備份賬戶創建數據文件
① 創建數據文件
② 修改權限
③ 安裝httpd服務
④ 站點目錄中創建index.html文件,賦予可讀權限
3 . 啟動 rsync 服務程序
四、使用rsync備份工具
4.1 rsync 命令的基本用法
絕大多數的備份程序要求指定原始位置、目標位置,rsync 命令也一樣。最簡單的 rsync 用法類似于 cp 命令。
例如,可以將文件/etc/fstab、目錄/boot/grub 同步備份到/opt 目錄下,其中“-r”選項表示遞歸整個目錄樹,“-l”選項用來備份鏈接文件。
[root@localhost ~]# rsync /etc/fstab /opt
[root@localhost ~]# rsync -rl /etc/fstab /boot/grub /opt
(1)命令格式及常用備份選項 從以上操作可以看出,備份的基本格式為“rsync [選項] 原始位置 目標位置”,其中常用 的一些命令選項如下所示,具體應根據實際需求選擇(如-avz)。
-r:遞歸模式,包含目錄及子目錄中的所有文件。
-l:對于符號鏈接文件仍然復制為符號鏈接文件。
-v:顯示同步過程的詳細(verbose)信息。
-a:歸檔模式,保留文件的權限、屬性等信息,等同于組合選項“-rlptgoD”。
-z:在傳輸文件時進行壓縮(compress)。
-t:保留文件的時間標記。
-g:保留文件的屬組標記(僅超級用戶使用)。
-o:保留文件的屬主標記(僅超級用戶使用)。
-H:保留硬連接文件。
-A:保留 ACL 屬性信息。
-D:保留設備文件及其他特殊文件。
–delete:刪除目標位置有而原始位置沒有的文件。
–checksum:根據校驗和(而不是文件大小、修改時間)來決定是否跳過文件。
(2)配置源的表示方法 在執行遠程同步任務時,rsync 命令需要指定同步源服務器中的資源位置。
rsync 同步 源的資源表示方式為“用戶名@主機地址::共享模塊名”或者“rsync://用戶名@主機地址/共享 模塊名”,前者為兩個冒號分隔形式,后者為 URL 地址形式。
例如,執行以下操作即可訪問 rsync 同步源,將指定的資源下載到本地/root 目錄下進行備份。
[root@localhost ~]# rsync -avz backuper@192.168.80.10::wwwroot /root
或者
[root@localhost ~]# rsync -avz rsync://backuper@192.168.80.10/wwwroot /root
環境準備工作:
服務器類型 系統和IP地址 需要安裝的組件 其他
rsync源服務器 CentOS7.4(64 位) 192.168.80.10 rsync(默認)、httpd ——
rsync客戶機(發起端) CentOS7.4(64 位) 192.168.80.20 rsync(默認) 配置免交互
1)將指定的資源下載到本地/opt 目錄下進行備份。
格式一:
rsync -avz backuper@192.168.80.10::wwwroot /opt/ #密碼abc123
格式二:
rsync -avz rsync://backuper@192.168.80.10/wwwroot /opt/
2)查看同步獲取的文件
cat /opt/index.html
this is www.clj.com
3)免交互格式配置
cd /opt
rm -rf gcc.txt
echo “abc123” > /etc/server.pass
chmod 600 /etc/server.pass
4)免交互測試同步
# 免交互同步
/usr/bin/rsync -avz --delete --password-file=/etc/server.pass backuper@192.168.80.10::wwwroot /opt/
ls /opt/ #查看是否同步成功
cat /opt/index.html #查看文件內容是否同步成功
5)加入到計劃性任務中
crontab -e
30 22 * * * /usr/bin/rsync -avz --delete --password-file=/etc/server.pass backuper@192.168.80.10::wwwroot /opt/
systemctl restart crond
systemctl enable crond
五、inotify+rsync 實時同步
Linux 內核從 2.6.13 版本開始提供了 inotify 通知接口,用來監控文件系統的各種變化情況,如文件存取、刪除、移動、修改等。利用這一機制,可以非常方便地實現文件異動告警、 增量備份,并針對目錄或文件的變化及時作出響應。
將 inotify 機制與 rsync 工具相結合,可以實現觸發式備份(實時同步)——只要原始位 置的文檔發生變化,則立即啟動增量備份操作;否則處于靜默等待狀態,如下圖所示。這樣,就避免了按固定周期備份時存在的延遲性、周期過密等問題。
正因為 inotify 通知機制由 Linux 內核提供,因此主要做本機監控,在觸發式備份中應用時更適合上行同步.
六、配置inotify+rsync 實時同步
6.2 配置inotify+rsync 實時同步的具體操作步驟(實操)
1.修改rsync源服務器(192.168.80.10)配置
① 修改配置文件vim /etc/rsyncd.conf
② 重新啟動rsync服務
③ 賦予權限
2.調整 inotify 內核參數(在客戶端配置:192.168.80.20)
① 導入inotify安裝包并解壓
② 調大inotify內核參數,根據生產需求
3.安裝 inotify-tools(在客戶端配置:192.168.80.20)
① 編譯安裝inotify
② 創建用于同步的目錄
4.在客戶端(192.168.80.20)編寫觸發式同步腳本
① 創建自動監控同步腳本并賦予權限
5、驗證實驗,客戶端開啟監控
① 手動執行腳本,然后再重新開一個終端
② 在客戶端(192.168.80.10)/var/www/html/ 目錄下創建文件test.txt
③ 在源服務器進程查看是否完成實時同步
④ 賦予權限和刪除文件測試
七、使用rsync來實現快速刪除大量文件。
假如要在Linux下刪除大量文件,比如100萬、1000萬,像/usr/local/nginx/proxy_ temp的nginx緩存等,那么rm -rf *可能就不好使了,因為要等待很長一段時間。在這種情況下我們可以使用rsync來巧妙處理。rsync實際用 的是替換原理。
先建立一個空的文件夾:
mkdir /home/blank
用rsync刪除目標目錄:
rsync --delete-before -a -H -v --progress --stats /tmp/linuxany /usr/local/nginx/proxy_temp
這樣目標目錄很快就被清空了
選項說明:
–delete-before :接收者在傳輸進行刪除操作
-a :歸檔模式,表示以遞歸方式傳輸文件,并保持所有文件屬性
-H :保持硬連接的文件
-v :詳細輸出模式
–progress :在傳輸時顯示傳輸過程
–stats :給出某些文件的傳輸狀態
總結
以上是生活随笔為你收集整理的rsync 远程同步——安全高效的异地备份策略的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: NoSQL(3) 之Redis主从复制、
- 下一篇: zookeeper + kafka集群搭