CentOS7下rsync服務的基本詳解和使用

来源:https://www.cnblogs.com/zeq912/archive/2018/09/05/9593931.html
-Advertisement-
Play Games

第1章 Rsync基本概述 1.1 什麼是Rsync rsync是一款開源,快速,多功能的可實現增量的本地或遠程的數據鏡像同步備份的優秀工具。適用於多個平臺。從軟體名稱可以看出來是遠程同步的意思(remote sync)可實現全量備份與增量備份,因此非常適合用於架構集中式備份或異地備份等應用。 1. ...


第1章 Rsync基本概述

1.1 什麼是Rsync

rsync是一款開源,快速,多功能的可實現增量的本地或遠程的數據鏡像同步備份的優秀工具。適用於多個平臺。從軟體名稱可以看出來是遠程同步的意思(remote sync)可實現全量備份與增量備份,因此非常適合用於架構集中式備份或異地備份等應用。

1.1.1 rsync官方地址

http://rsync.samba.org/

1.1.2 rsync監聽埠

873

1.1.3 rsync運行模式

C/S   客戶端/服務端      

B/S   瀏覽器/服務端

1.1.4 rsync備份方式

全量備份

將客戶端所有的數據內容全都備份到服務端

增量備份

將客戶端數據內容(不包含已備份到服務端的內容)增量備份到服務端

1.2 Rsync傳輸方式及應用場景

1.2.1 上傳(推)

所有主機推送本地數據至Rsync備份伺服器,會導致數據同步緩慢(適合少量數據備份)

機器量不是很多的時候,可以使用推送

1.2.2 下載(拉)

rsync備份服務端拉取所有主機上的數據,會導致備份伺服器開銷大

機器量很大的時候,推和拉協同使用

1.3 Rsync傳輸模式

Rsync大致使用三種主要的數據傳輸方式

1.3.1 本地方式(單個主機本地之間的數據傳輸,類似cp命令)  

Local:  本地傳輸

Local:  rsync [OPTION...] SRC... [DEST]

rsync       ---備份命令(cp)

[options]       ---選項

SRC...         ---本地源文件

[DEST]        ---本地目標文件

 [root@backup ~]# rsync -avz /etc/passwd /tmp/

[root@backup ~]# ls /tmp/passwd

/tmp/passwd

1.3.2 遠程方式通過(ssh通道傳輸數據,類似scp命令)

Access via remote shell: 遠程傳輸

Pull: rsync [OPTION...] [USER@]HOST:SRC... [DEST]   下載(拉)

Pull             ---拉取, 下載

rsync             ---備份命令

[options]          ---選項

[USER@]          ---目標主機的系統用戶

HOST           ---目主機IP地址或功能變數名稱

SRC...          ---目標主機源文件

[DEST]         ---下載至本地哪個位置

下載pull

[root@nfs ~]# pwd

/root

[root@nfs ~]# echo "This Nfs" > file

[root@backup ~]# rsync -avz [email protected]:/root/file /opt/

[root@backup ~]# cat /opt/file

This Nfs

Push: rsync [OPTION...] SRC... [USER@]HOST:DEST    上傳(推)

Push           ---推,上傳

rsync          ---備份命令

[options]          ---選項

SRC...            ---本地源文件

[USER@]       ---目標主機的系統用戶

HOST            ---目主機IP地址或功能變數名稱

[DEST]           ---目標對應位置

上傳push(將backup的file2文件上傳至NFS伺服器的/mnt目錄)

[root@backup ~]# pwd

/root

[root@backup ~]# echo "This Rsync" > file2

[root@backup ~]# rsync -avz /root/file2 [email protected]:/mnt

[root@nfs ~]# cat /mnt/file2

This Rsync

推送目錄(推送/root/目錄下麵的所有文件和目錄,不會推送/root/目錄本身)

[root@backup ~]# rsync -avz /root/ [email protected]:/tmp            /root/

推送目錄,推送目錄本身以及目錄下麵的所有文件

[root@backup ~]# rsync -avz /root [email protected]:/tmp             /root

遠程方式存在的缺陷:

1.需要使用系統用戶(不安全)

2.使用普通用戶(許可權存在問題)

3.需要走ssh協議

1.3.3 守護進程(服務,持續後臺運行)

Access via rsync daemon:    守護進程方式傳輸

Pull: rsync [OPTION...] [USER@]HOST::SRC... [DEST]

rsync                    ---命令

[OPTION...]          ---選項

[USER@]       ---遠程主機用戶(虛擬用戶)

HOST::        ---遠程主機地址

SRC...         ---遠程主機模塊(不是目錄)

[DEST]          ---將遠程主機數據備份至本地什麼位置

拉取rsync備份服務的backup模塊數據至本地/mnt目錄

[root@nfs01 ~]# rsync -avz [email protected]::backup/ /mnt/

Push: rsync [OPTION...] SRC... [USER@]HOST::DEST

Push: rsync [OPTION...] SRC... [USER@]HOST::DEST

rsync                ---命令

[OPTION...]           ---選項

SRC...           ---遠程主機模塊(不是目錄)

[USER@]        ---遠程主機用戶(虛擬用戶)

HOST::         ---遠程主機地址

[DEST]         ---將遠程主機模塊備份至本地什麼位置

將本地/mnt目錄推送至rsync備份伺服器的backup模塊

[root@nfs01 ~]# rsync -avz /mnt/ rsync_backup@192.172.16.1.41::backup/

1.4 Rsync命令選項

紫色字元表示不固定,根據自己需求調整。紅色字元表示警告。

-a

歸檔模式傳輸, 等於-tropgDl

-v

詳細模式輸出, 列印速率, 文件數量等

-z

傳輸時進行壓縮以提高效率

-r

遞歸傳輸目錄及子目錄,即目錄下得所有目錄都同樣傳輸

-t

保持文件時間信息

-o

保持文件屬主信息

-p

保持文件許可權

-g

保持文件屬組信息

-l 

保留軟連接

-P

顯示同步的過程及傳輸時的進度等信息

-D

保持設備文件信息

-L

保留軟連接指向的目標文件

-e

使用的通道協議,指定替代rsh的shell程式

--exclude=PATTERN

指定排除不需要傳輸的文件模式

--exclude-from=file

文件名所在的目錄文件

--bwlimit=100

限速傳輸

--partial

斷點續傳

--delete

讓目標目錄和源目錄數據保持一致             謹慎使用

第2章 Rsync服務配置

2.1 需要準備兩台伺服器

角色

外網IP(NAT)

內網IP(LAN)

主機名

Rsync服務端

eth0:10.0.0.41

eth1:172.16.1.41

backup

Rsync客戶端

eth0:10.0.0.31

eth1:172.16.1.31

nfs

2.2 安裝rsync

[root@backup ~]# yum install rsync -y

2.3 配置rsync

查詢配置文件存放的路徑

[root@backup ~]# rpm -qc rsync

/etc/rsyncd.conf

進行配置

[root@backup ~]# vi /etc/rsyncd.conf         先把原有的內容清除,這裡要用vi進行編輯,不能使用vim

uid = rsync

gid = rsync

port = 873

fake super = yes

use chroot = no

max connections = 200

timeout = 600

ignore errors

read only = false

list = false

auth users = rsync_backup

secrets file = /etc/rsync.password

log file = /var/log/rsyncd.log

#####################################

[backup]

comment = welcome to oldboyedu backup!

path = /backup

2.3.1 配置內容解釋

# 全局模塊

uid = rsync                          --- 運行進程的用戶

gid = rsync                         --- 運行進程的用戶組

port = 873                          --- 監聽埠

fake super = yes                    --- 無需讓rsync以root身份運行,允許存儲文件的完整屬性

use chroot = no                      --- 關閉假根功能

max connections = 200               --- 最大連接數

timeout = 600                       --- 超時時間

ignore errors                       --- 忽略錯誤信息

read only = false                   --- 對備份數據可讀寫

list = false                        --- 不允許查看模塊信息

auth users = rsync_backup           --- 定義虛擬用戶,作為連接認證用戶

secrets file = /etc/rsync.passwd    ---定義rsync服務用戶連接認證密碼文件路徑


##局部模塊

[backup]                --- 定義模塊信息

comment = commit        --- 模塊註釋信息

path = /backup          --- 定義接收備份數據目錄

2.4 創建用戶(運行rsync服務的用戶身份)

2.4.1 創建rsync賬戶,不允許登錄不創建家目錄

[root@backup ~]# useradd -M -s /sbin/nologin rsync

2.4.2 創建備份目錄(儘可能磁碟空間足夠大),授權rsync用戶為屬主

[root@backup ~]# mkdir /backup

[root@backup ~]# chown -R rsync.rsync /backup/   

2.5 創建虛擬用戶密碼文件(用於客戶端連接時使用的用戶)

創建虛擬用戶和密碼文件,並賦予600許可權

[root@backup ~]# echo "rsync_backup:1" >/etc/rsync.password    密碼設置為1

[root@backup ~]# chmod 600 /etc/rsync.password

2.6 啟動rsync服務,並加入開機自啟

[root@backup ~]# systemctl start rsyncd

[root@backup ~]# systemctl enable rsyncd

2.7 啟動後檢查對應埠

[root@bogon ~]# netstat -lntp

Active Internet connections (only servers)

Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name   

tcp        0      0 0.0.0.0:873             0.0.0.0:*               LISTEN      4758/rsync

第3章 Rsync服務實踐

rsync實現簡單的本地打包和推送

3.1 將客戶端的/etc/passwd 推送至 rsync服務端[backup]

rsync [OPTION...] SRC... [USER@]HOST::DEST

[root@nfs ~]# rsync -avz /etc/passwd [email protected]::backup

3.2 將rsync服務端模塊[/backup]下載至本地

Pull: rsync [OPTION...] [USER@]HOST::SRC... [DEST]

[root@nfs ~]# rsync -avz [email protected]::backup /opt

3.3 同步時不輸入密碼[第一種方式,sersync]

在服務端創建密碼文件並賦予600許可權

[root@nfs ~]# echo "1" >/etc/rsync.password       這裡1代表密碼,密碼要和服務端的一致

[root@nfs ~]# chmod 600 /etc/rsync.password

執行rsync服務端模塊[/backup]下載至本地的命令加--password-file=/etc/rsync.password

[root@nfs ~]# rsync -avz [email protected]::backup /opt --password-file=/etc/rsync.password

3.4 同步時不輸入密碼[第二種方式:寫腳本時使用]

export RSYNC_PASSWORD=1     設置RSYNC_PASSWORD環境變數=1  這裡的1是密碼,密碼要和服務端的一致

[root@nfs ~]# rsync -avz [email protected]::backup /opt 

第4章 Rsync常見故障

4.1 服務未開啟

4.1.1 開啟服務

systemctl start rsyncd

netstat -lntp      查看埠

4.2 防火牆和selinux未關閉

4.2.1 關閉防火牆

systemctl disable firewalld

systemctl stop firewalld

4.2.2 關閉selinux

sed -i '/^SELINUX=/c SELINUX=disabled' /etc/selinux/config

4.3 密碼輸入錯誤

4.4 命令格式錯誤

4.5 密碼文件許可權必須是600

chmod 600 /etc/rsync.password

4.6 rsync配置錯誤

vi /etc/rsyncd.conf

4.7 備份目錄屬主錯誤

chown -R rsync.rsync /backup/

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 在現有類(基類、父類)上建立新類(派生類、子類)的處理過程稱為繼承。派生類能自動獲得基類的除了構造函數和析構函數以外的所有成員,可以在派生類中添加新的屬性和方法擴展其功能。 繼承的特性: 可傳遞性:C從B派生,B從A派生,那麼C不僅繼承B也繼承A。 單一性:只能從一個基類中繼承,不能同時繼承多個基類 ...
  • 1.『策略模式』 定義了演算法族,分別封裝起來,讓它們之間可以互相替換,此模式讓演算法的變化獨立於使用演算法的客戶。 OO基礎:抽象 封裝 多態 繼承 OO原則:封裝變化 多用組合,小用繼承 針對介面編程,不針對實現編程。 • 知道OO基礎,並不足以讓你設計出良好的OO系統。• 良好的OO設計必須具備可 ...
  • 分散式系統或軟體如何通信?使用WebService服務。說它是服務可以,web通信中間件也ok,web通信組件....... 特點 自包含 自描述 跨平臺、跨語言 基於開放和標準 (用了xml,嗯,開放) 可以組合 (幾個小服務可以組成大服務) 鬆散耦合 (服務出事了,請求的那方不會崩潰) 提供編程 ...
  • 1. 框架以外依賴包引入 1.1. Pomelo.EntityFrameworkCore.MySql 1.2. Pomelo.EntityFrameworkCore.MySql.Design 2. 衝突包的檢查和排除(自己遇到的出問題的地方) 2.1. 排除-Mysql.Data.Entity,具體 ...
  • How to avoid WPF TreeView SelectedItemChanged being called twice Very often, we need to execute some code in SelectedItemChanged depending on the sele ...
  • 來看看8月份最後一個周F#和.NET最新相關信息. https://www.yuque.com/rock/fsharp-weekly/35 這次我們多聊聊.NET相關的東西, 看看.NET的健康生態. 新聞 隨著Core的穩定發佈,.NET Standard 2.1也更新發佈, WebSharper ...
  • shell數組 數組介紹 數組就是各種數據類型的元素按一定順序排列的集合。 數組就是把有限個元素變數或數據用一個名字命名,然後用編號區分它們的變數的集合。這個名字稱為數組名,編號稱為數組下標。組成數組的各個變數稱為數組的分量,也稱為數組的元素,有時也稱為下標變數。 數組定義與增刪改查 方法1:arr... ...
  • 重啟系統後按'e'鍵,進入編輯模式,在'UTF -8'後空格輸入'rd.break'後,按快捷鍵'Ctrl+X'進入新界面進行編輯,代碼如下: switch_root:/# mount -o remount,ru /sysroot/ switch_root:/#mount switch_root:/ ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...