Rsync服務

来源:http://www.cnblogs.com/bananaaa/archive/2017/11/17/7850292.html
-Advertisement-
Play Games

第1章 Rsync開篇介紹 1.1 rsync的定義 Rsync是一款開源的、快速的、多功能的、可實現全量及增量的本地或遠程數據同步備份的優秀工具。Rsync軟體適用於unix/linux/windows等多種操作系統平臺 ① 全量備份:第一次傳輸數據過程中使用全量備份,將全部數據進行傳輸覆蓋 ② ...


第1章 Rsync開篇介紹

1.1 rsync的定義

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

①  全量備份:第一次傳輸數據過程中使用全量備份,將全部數據進行傳輸覆蓋

②  增量備份:在第一次傳輸完畢後再進行傳輸使用增量備份,只傳輸差異部分數據

1.2 rsync的簡介

Rsync英文全稱為Remote synchronization, Rsync具有可使本地和遠程兩台主機之間的數據快速複製同步鏡像、遠程備份的功能,在本地主機的不同分區或目錄之間全量及增量的複製數據。另外,利用Rsync還可以實現刪除文件和目錄的功能。

  Centos5,Rsync2.x對比方法,把所有的文件對比一遍,然後在進行同步。

  Centos6,Rsync3.x對比方法,一邊比對差異,一邊對差異的部分進行同步。

#查看當前虛擬機系統中rsync版本信息

1 [root@backup ~]# rsync --version
2 
3 rsync  version 3.0.6  protocol version 30
4 
5 Copyright (C) 1996-2009 by Andrew Tridgell, Wayne Davison, and others.
6 
7 Web site: http://rsync.samba.org/

#查看客戶端man rsync

#查看服務端配置man rsyncd.conf

1.3 實現增量複製的原理

 

1.連接兩台伺服器,確認兩台伺服器之間可以正常進行數據傳遞

2.利用演算法檢測目標主機與當前主機數據信息是否一致

3.確認無誤將增量變化的數據進行傳遞(預設情況)

 

在同步備份數據時,預設Rsync通過其獨特的“quick check”演算法,僅同步大小或者最後修改時間發生變化的文件或目錄,當然也可以根據許可權,屬主等屬性的變化同步,但需要指定相應的參數,甚至可以實現只同步一個文件里有變化的內容部分。

1.4 rsync的實現方法介紹

具有使本地和遠程兩台主機之間的數據快速複製同步鏡像,遠程備份功能,可以在本地主機的不同分區或目錄之間全量及增量的複製數據。

類似的命令(1v4):scp cp ls rm [與scp cp命令不同的是rsync實現增量複製或同步]

1.5 rsync特性總結說明

1.5.1 支持拷貝普通文件與特殊文件如鏈接文件,設備等

1.5.2 可以有排除指定文件或目錄同步的功能,相當於打包命令tar的排除功能

 1 tar zcvf backup_1.tar.gz /opt/data -exclude=oldboy 

說明:在打包/opt/data時就排除了oldboy命名的目錄和文件

1.5.3 可以做到保持原文件或目錄的許可權、時間(訪問/修改/創建)、軟硬鏈接、屬主、組等所有屬性均不改變-p

1.5.4 可實現增量同步,既只同步發生變化的數據,因此數據傳輸效率很高(tar -N)

# 將備份/home目錄自2008-01-29以來修改過的文件

 1 tar-N 2008-01-29 -zcvf /backups/inc-backup_$(date +%F).tar.gz /home 

# 將備份/home目錄昨天以來修改過的文件

 1 tar-N $(date -d yesterday "+%F") -zcvf /backups/inc-backup_$(date +%F ).tar.gz /home 

# 添加文件到已經打包的文件(對壓縮文件不起作用)

 1 tar -rf all.tar *.gif 

說明:這條命令是將所有.gif的文件增加到打包的all.tar裡面去。-r表示增加文件

1.5.5 可以使用rcp、rsh、ssh等方式來配合進行隧道加密傳輸文件(rsync本身不對數據加密)

1.5.6 可以通過socket(進程方式)傳輸文件和數據(服務端和客戶端)[重點掌握****]

1.5.7 支持匿名的或認證(無需系統用戶)的進程模式傳輸,可實現方便安全的進行數據備份及鏡像

1.6 rsync軟體的優缺點

rsync優點:

1.增量備份,支持socket(daemon),集中備份(支持推拉,都是以客戶端為參照物)

2.遠程Shell通道模式還可以加密(SSH)傳輸,socket(daemon)需要加密傳輸,可以利用vpn服務或ipsec服務

rsync缺點:

1.大量小文件實時同步的比對時間較長,有時候同步過程中,rsync進程可能會停止

2.同步10G這樣的大文件有時也會出問題,未完整同步前是隱藏文件,可以通過快傳--partial等參數實現

3.一次性遠程拷貝可以用scp,大量小文件要達成一個包再拷貝

 

第2章 Rsync企業工作場景說明

2.1 利用定時任務cron+rsync方式實現數據同步

同步網站內部技術人員數據信息,定時同步配置文件rc.local

說明:定時任務最小周期為1分鐘

2.2 利用實時任務cron+rsync方式實現數據同步(解決伺服器單點故障)

同步網站外部訪問用戶數據信息,實時同步方式sersync+rsync;inotify+rsync;lrsyncd+rsync

2.3 *生產場景集群架構伺服器備份方案項目(上機)

藉助crond+rsync把客戶伺服器數據同步到備份伺服器

全網伺服器數據備份解決方案提出及負責實施200x.03-200x.09

1、針對公司重要數據備份混亂狀況和領導提出備份全網數據的解決方案

2、通過本地打包備份,然後Rsync結合inotifg應用把全網數據統一備份到一個固定存儲伺服器,然後在存儲伺服器上通過腳本檢查並報警管理員備份結果

3、定期將IDC機房的數據備份放入公司內部伺服器,防止機房地震及火災問題導致數據丟失

 

第3章 Rsync工作方式介紹

3.1 本地主機間同步方式

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

3.1.1 實例

 1 [root@backup ~]# rsync /etc/hosts /opt/ 

3.2 通過ssh遠程隧道方式

Access via remote shell:

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

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

3.2.1 語法說明

1) Rsync為同步的命令

2) [OPTION...]為同步時的參數選項

3) [USER@]HOST...為Rsyng同步的遠程的連接用戶和主機地址;

[USER@]表示數據傳輸到遠程伺服器上時傳輸數據的用戶的身份信息;

HOST表示遠程主機信息(IP地址信息 主機名稱信息)

4) SRC為源,即待拷的分區、文件或目錄等,和HOST之間用一個冒號連接

[遠程伺服器的數據資源(拉);本地伺服器的數據資源(推)]

5) [DEST]即目的分區(目的地)、文件或目錄等

[表示本地目錄或文件信息(拉);遠程目錄或文件信息(推)]

  拉取(get),表示從遠端主機把數據同步到執行命令的本地主機相應目錄;

  推送(put),表示從本地主機執行命令把本地的數據同步到遠端主機指定目錄下。

3.2.2 實例

1.文件

1 #拉[Pull]
2 [root@backup ~]# rsync -rp root@172.16.1.31:/opt/hosts /etc/
3 
4 #推[Push]
5 [root@backup ~]# rsync -rp /etc/hosts root@172.16.1.31:/opt  #這裡預設當前用戶就是root,可以省略,即rsync -rp /etc/hosts 172.16.1.31:/opt

2.目錄

1 #推
2 [root@backup ~]# rsync -rp /etc/sysconfig root@172.16.1.31:/opt/  #表示把目錄本身及子文件推送過去
3 
4 [root@backup ~]# rsync -rp /etc/sysconfig/ root@172.16.1.31:/opt/  #表示只把目錄下麵的內容推送過去(目錄本身不存在)

3.2.3 rsync參數彙總說明

參數

參數說明

-v

詳細模式輸出,傳輸時的數據等信息

-z

傳輸時以壓縮的形式以提高傳輸效率

--compress-level-NUM可按級別進行壓縮,區域網可不用壓縮

-a

歸檔模式,表示以遞歸方式傳輸文件,並保持所有文件屬性,等於-rlptgoD

-r

對子目錄以遞歸模式處理,及目錄下的所有目錄都同樣傳輸

-t

保持文件時間信息

-o

保持文件屬主信息

-p

保持文件許可權

-g

保持文件屬組信息

-l

保留軟鏈接

-D

保持設備文件信息

-P

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

-e

使用的通道協議,指定替代rsh的shell程式(隧道模式下使用)

-e實現指定ssh加密隧道傳輸

[root@nfs01 ~]# rsync -avz -e "ssh -p 22" /etc/hosts 172.16.1.31:/backup

--exclude=PATTERN

指定排除不需要傳輸的文件模式,相當於tar

--exclude-from=file

文件名所在的目錄文件,即可以實現排除多個文件,相當於tar

--bwlimit=RATE

限制I/O帶寬,限速

案例如下

--delete

刪除那些DST中SRC沒有的文件,從而使目標目錄SRC和源目錄數據DST一致,即無差異同步數據

***保持同步目錄及文件屬性:

-avzP 相當於-vzrtopgDIP

3.2.3.1  案例:某DBA做數據同步,帶寬占滿導致用戶無法訪問網站

問題:沒有進行限速設定

 1 rsync -avz dbfile 10.0.0.41:/backup 

解決方法:

 1 rsync -avz --bwlimit=100 dbfile 172.16.1.41:/backup 

3.3 ***rsync daemon守護進程方式(需要有服務端和客戶端)

1.規劃

backup伺服器作為rsync服務端

以rsync客戶端伺服器作為參照伺服器,將數據推到rsync服務端

2.部署環境

主機名

網卡eth0

eth1

用途

backup

10.0.0.41

172.16.1.41

rsync服務端

nfs01

10.0.0.31

172.16.1.31

rsync客戶端

3.3.1 服務端配置-rsync(將服務端配置到backup伺服器上)

3.3.1.1  01-查看rsync軟體是否存在

 1 rpm -qa rsync 

3.3.1.2  02-安裝rsync軟體

 1 yum install rsync -y 

3.3.1.3  03-編輯rsync軟體配置文件--配置文件參考資料man rsyncd.conf

(編寫好配置文件以便進行後面的步驟)

 1 vim /etc/rsyncd.conf
 2 
 3 #配置文件描述信息
 4 #creat by Liu at 2017-10-02
 5 ##rsyncd.conf start##
 6 #配置文件全局配置(全局變數)
 7 uid = rsync                 #指定rsync服務運行時,向磁碟進行讀取和寫入的操作者
 8 gid = rsync
 9 use chroot = no              #安全相關參數
10 max connections = 200        #在同一時間,伺服器連接rsync時最大的連接數
11 timeout = 300               #超時時間定義(s),備份完數據後進行超時自動切斷連接
12 pid file = /var/run/rsyncd.pid   #存放進程對應id號的PID文件
13 (01.停止進程更方便;02.判斷服務是否運行)
14 lock file = /var/run/rsync.lock  #進程的鎖文件(當兩或多個文件同時傳輸到一個目的地時,給其中一個文件加鎖表示等待該文件處理完畢後再處理另一個文件)
15 log file = /var/log/resyncd.log  #程式運行的日誌文件,包括出錯信息等
16 ignore errors               #忽略錯誤程式,繼續處理其他文件
17 read only = false            #是否只讀,這裡設置false表示擁有讀寫許可權進行傳輸
18 list = false                 #是否可以列表
19 hosts allow = 172.16.1.0/24   #准許訪問rsync伺服器的客戶範圍(白名單)
20 #hosts deny = 0.0.0.0/32      #禁止訪問rsync伺服器的客戶範圍(黑名單)
21 auth users = rsync_backup    #不存在的用戶,只用於開門認證
22 secrets file = /etc/rsync.password       #對不存在的用戶進行連接認證時的密鑰文件
23 
24 #配置文件模塊配置(局部變數【需要遵循全局變數】)
25 [backup]                #[模塊名稱]以下為局部變數,添加多模塊信息無需重啟,即時生效
26 path = /backup           #模塊數據對應的統一備份位置(路徑)
27 comment = "backup dir by oldboy"     #註釋,備註信息
28 ##rsyncd.conf end##

3.3.1.4  04-創建rsync軟體備份目錄的管理用戶

 1 useradd -s /sbin/nologin -M rsync 2 3 id rsync 

3.3.1.5  05-創建rsync配置信息中的安全認證文件並修改許可權(secrets file密鑰)

 1 echo "rsync_backup:oldboy123" >/etc/rsync.password 2 3 chmod 600 /etc/rsync.password 

賦予密碼文件許可權,只有rsync用戶可以讀寫明文密碼

3.3.1.6  06-創建rsync配置信息中的備份目錄併進行授權

 1 mkdir -p /backup 2 3 chown -R rsync.rsync /backup 

3.3.1.7  07-啟動rsync軟體程式進程以獲得socket信息(以守護進程的方式)

1 rsync --daemon
2 
3 ps -ef |grep rsync
4 
5 #加入開機自啟動
6 
7 echo "/usr/bin/rsync --daemon" >>/etc/rc.local

至此,服務端配置操作完成

3.3.2 客戶端配置-其他伺服器為客戶端

3.3.2.1  01-查看rsync軟體是否存在

 1 rpm -qa rsync 

3.3.2.2  02-安裝rsync軟體

 1 yum install rsync -y 

3.3.2.3  03-創建rsync配置信息中的安全認證文件

 1 echo "oldboy123" >/etc/rsync.password 2 3 chmod 600 /etc/rsync.password  

至此,客戶端配置操作完成

3.3.2.4  04-測試rsync軟體在客戶端

Access via rsync daemon:

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

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

 

實例:交互方式傳輸數據信息

1 [root@nfs01 ~]# rsync -avz /etc rsync_backup@172.16.1.41::backup  #推(本地用戶認證+定義好的模塊)
2 
3 Password:輸入認證用戶的密碼oldboy123
4 
5 [root@nfs01 ~]# rsync -avz rsync_backup@172.16.1.41::backup/oldboy /tmp  #拉(服務端用戶認證)
6 
7 Password:輸入rsync_backup的密碼

擴展:實現免交互方式rsync傳輸數據信息(守護進程)

 1 #這裡要保證backup目錄下不存在etc 2 3 [root@backup backup]# rsync -avz /etc rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.password 

3.4 rsync知識點補充

3.4.1 配置文件內容總結

模塊之上內容為全局變數信息,針對所有模塊成效

模塊之下內容為局部變數信息,只針對指定模塊生效

說明:無論是全局變數還是局部變數發生變化,都建議重啟rsync服務使配置生效

3.4.2 刪除rsync軟體程式進程

殺手三人組

①    kill進程pid號

說明:需要知道進程號信息,並且在殺死進程後有提示說明

②    killall 進程名

說明:殺死進程後有提示說明

1 [root@backup ~]# killall rsync
2 
3 [root@backup ~]# killall rsync
4 
5 rsync: no process killed

③    pkill 進程號[模糊殺手,用時需小心]

說明:殺死進程後沒有提示信息

pkill殺手的特性註釋(以例子說明):

當用pkill殺進程sh腳本時,遠程服務就會斷開。原因是當pkill殺死sh的同時會連同其他含有sh信息的進程一同殺死,這裡就是殺死了sshd導致遠程斷開。

附:rsync重啟方式介紹

 1 [root@backup ~]# ps -ef |grep rsync
 2 
 3 root       3436      1  0 11:46 ?       00:00:00 rsync --daemon
 4 root       3710   1752  0 15:02 pts/1    00:00:00 grep --color=auto rsync
 5 
 6 [root@backup ~]# cat /var/run/rsyncd.pid  #查看PID文件
 7 
 8 3436
 9 
10 [root@backup ~]# kill `cat /var/run/rsyncd.pid`
11 
12 [root@backup ~]# kill `cat /var/run/rsyncd.pid`  #依舊要多殺幾次
13 
14 [root@backup ~]# ps -ef |grep rsync
15 
16 root       3710   1752  0 15:02 pts/1    00:00:00 grep --color=auto rsync
17 
18 [root@backup ~]# rsync --daemon  #實現重啟

3.4.3 設置rsync軟體開機自啟動

法一:配置/etc/rc.local文件

法二:配置/etc/init.d/目錄

創建腳本信息(if case)→設置腳本文件許可權→編輯啟動文件參數→加入啟動服務列表

方法三:利用xinetd服務啟動rsync(確定rsync關閉狀態)->有一定影響,儘量不使用

3.4.4 rsync --daemon啟動擴展參數

--daemon     #<==表示以守護進程方式啟動rsync服務

--address     #<==綁定指定IP地址提供服務

--config=FILE #<==更改配置文件路徑,而不是預設的/etc/rsyncd.conf

--port=PORT  #<==更改其他埠提供服務,而不是預設的873埠

3.4.5 定義變數信息實現免秘鑰交互

 1 [root@nfs01 ~]# export RSYNC_PASSWORD=oldboy123 2 3 [root@nfs01 ~]# rsync -avz /etc/services rsync_backup@172.16.1.41::backup 


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

-Advertisement-
Play Games
更多相關文章
  • 記憶體對齊問題之大小端對齊問題 郝東東寫 所謂的大小端問題,也就是位元組序。處理器(CPU)對記憶體數據操作有兩種模式:讀和寫。這樣,處理器在讀寫一個多位元組記憶體的時候,高位元組是在記憶體的高地址還是低地址就是一個問題,不同的大小端模式可能有不同的結果。 當處理器讀寫指令針對數據不一致的時候就涉及到大小端問題, ...
  • 第1章 NFS介紹 1.1 NFS的概念 NFS是Network File System的縮寫,即網路文件系統,它的主要功能是通過網路(一般是區域網)讓不同的主機系統之間可以共用文件或目錄。NFS客戶端(一般為應用伺服器如web)可以通過mount掛載的方式將NFS伺服器端共用的數據目錄掛載到NFS ...
  • 一、 定義: 1. Apache Apache HTTP伺服器是一個模塊化的伺服器,可以運行在幾乎所有廣泛使用的電腦平臺上。其屬於應用伺服器。Apache支持支持模塊多,性能穩定,Apache本身是靜態解析,適合靜態HTML、圖片等,但可以通過擴展腳本、模塊等支持動態頁面等。 (Apche可以支持 ...
  • 俗話說,沒圖說個JB。好我馬上上圖 提醒:我在這裡只是提供一個思路過程,希望可以幫到你,同時我也做一個記錄,有任何問題歡迎 0、0、:1870194664 威信 :gklbb520 註意:在安裝之前必須要root,小米手機root可能要先解BL鎖 環境:linux deploy 、busybox p ...
  • ch /etc/ chmod 644 passwd group shadow chmod 400 gshadow cd ssh chmod 600 moduli ssh_host_dsa_key ssh_host_key ssh_host_rsa_key chmod 644 ssh_config s ...
  • 說明:系統版本為 Linux version 3.10.0-327.el7.x86_64 step1. 查看現有磁碟信息,可以看出根分區有45G step2. 查看新增加的磁碟信息 step3. 根據以上信息,對新增加的磁碟進行分區 step4. 創建物理捲 step5. 查看物理捲信息 step6 ...
  • PXE概述: PXE(Pre-bootExecution Environment),預啟動執行環境 通過網路介面啟動電腦 支持工作站通過網路從遠端伺服器下載映像,並由此支持通過網路啟動操作系統,在啟動過程中,終端要求伺服器分配IP地址,再用TFTP協議下載一個啟動軟體包到本機記憶體中執行,由這個啟動 ...
  • 查看當前系統資源限制 ulimit -a 設置用戶的最大進程數(重啟後失效) ulimit -u 1024 設置用戶可以打開的最大文件句柄數(重啟後失效) ulimit -n 65530 說明:現在阿裡雲的伺服器一般都會幫你設置好了,還有,上面的方法只是快速修改,不能永久生效,如果想永久生效,就得修 ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...