rsync 服務部署詳解

来源:http://www.cnblogs.com/znix/archive/2017/10/14/7668309.html
-Advertisement-
Play Games

第1章 rsync 軟體介紹 1.1 什麼是rsync rsync 是一款開源的、快速的、多功能的、可實現全量及增量的本地或遠程數據同步備份的優秀工具。 http://www.samba.org/ftp/rsync/rsync.html 1.1.1 全量及增量 全量:將全部數據,進行傳輸覆蓋 增量: ...


第1章 rsync 軟體介紹

1.1 什麼是rsync

rsync 是一款開源的、快速的、多功能的、可實現全量及增量的本地或遠程數據同步備份的優秀工具。

http://www.samba.org/ftp/rsync/rsync.html

1.1.1 全量及增量

全量:將全部數據,進行傳輸覆蓋

增量:只傳輸差異部分的數據

1.2 實現增量複製的原理

Rsync通過其獨特的“quick check”演算法,實現增量傳輸數據

[root@backup ~]#man rsync

Rsync  finds  files  that  need  to  be transferred using a “quick check” algorithm (by default)  that  looks  for  files  that  have changed  in  size  or  in  last-modified time.  Any changes in the other preserved attributes (as requested by options) are  made  on the  destination file directly when the quick check indicates that the file’s data does not need to be updated.

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

centos 5 rsync 2.x 先比對再同步,速度較慢

centos 6 rsync 3.x 一邊比對,一邊對差異部分進行同步

1.2.1 軟體版本

[root@backup ~]# rsync --version

rsync  version 3.0.6  protocol version 30

Copyright (C) 1996-2009 by Andrew Tridgell, Wayne Davison, and others.

Web site: http://rsync.samba.org/

Capabilities:

    64-bit files, 64-bit inums, 64-bit timestamps, 64-bit long ints,

    socketpairs, hardlinks, symlinks, IPv6, batchfiles, inplace,

    append, ACLs, xattrs, iconv, symtimes

 

rsync comes with ABSOLUTELY NO WARRANTY.  This is free software, and you

are welcome to redistribute it under certain conditions.  See the GNU

General Public Licence for details.

1.3 rsync 軟體功能介紹 

類似於 cp 命令 -- 實現本地備份傳輸數據

類似於scp 命令 -- 遠程備份傳輸數據

類似於 rm 命令 -- 實現無差異同步備份

類似於 ls 命令 -- 本地文件信息查看

rsync 命令屬於1 v 4 的命令

1.3.1 rsync == cp

[root@backup ~]# cp -a  /etc/hosts /tmp/

[root@backup ~]# ls /tmp/

hosts

[root@backup ~]# \rm /tmp/hosts

[root@backup ~]# rsync  /etc/hosts /tmp/

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

/tmp/hosts

1.3.2 rsync == scp

#使用scp實現

#檢查對端伺服器目標位置上是否有該文件

[root@nfs01 ~]# ls /tmp/hosts

ls: cannot access /tmp/hosts: No such file or directory

#從本地拷貝到遠端伺服器上

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

/tmp/hosts

[root@backup ~]# scp -rp /etc/hosts 10.0.0.31:/tmp/

The authenticity of host '10.0.0.31 (10.0.0.31)' can't be established.

RSA key fingerprint is d3:41:bb:0d:43:88:da:a3:2c:e8:36:91:11:c9:e4:9c.

Are you sure you want to continue connecting (yes/no)? yes

Warning: Permanently added '10.0.0.31' (RSA) to the list of known hosts.

[email protected]'s password:

hosts                                           100%  357     0.4KB/s   00:00

#檢查遠端伺服器上的結果

[root@nfs01 ~]# ls /tmp/hosts

/tmp/hosts

 

#使用rsync 實現

[root@backup ~]# rsync -rp /etc/hosts 10.0.0.31:/tmp/

[email protected]'s password:

[root@backup ~]#

[root@nfs01 ~]# ls /tmp/hosts

/tmp/hosts

1.3.3 rsync == rm

1.3.3.1 環境準備

創建出來一次命令 進行操作

 [root@backup tmp]# mkdir /znix

[root@backup znix]# cp /tmp/* .

[root@backup znix]# ll

total 4

-rw-r--r-- 1 root root 357 Oct 11 15:21 hosts

#rm命令操作

[root@backup znix]# rm -rf /znix/hosts

[root@backup znix]# ll /znix/hosts

ls: cannot access /znix/hosts: No such file or directory

查看這文件

[root@backup ~]# ll

total 4

-rw-r--r-- 1 root root 357 Oct 11 15:21 hosts

創建一個空目錄,使用空目錄進行無差異同步

[root@backup ~]# mkdir /null

[root@backup ~]# rsync --delete  /null/ /znix/

rsync: --delete does not work without -r or -d.

rsync error: syntax or usage error (code 1) at main.c(1422) [client=3.0.6]

[root@backup ~]# rsync  -a  --delete  /null/ /znix/

[root@backup ~]# ll /znix/

total 0

1.3.4 rsync == ls -l

使用rsync 可以實現與 ls 類似的功能

[root@backup ~]# ls -l install.log

-rw-r--r--. 1 root root 21736 Sep 25 08:38 install.log

[root@backup ~]# rsync install.log

-rw-r--r--       21736 2017/09/25 08:38:28 install.log

1.4 Rsync的特性總結(7個特性信息說明

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

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

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

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

03. 可以做到保持原文件或目錄的許可權、時間、軟硬鏈接、屬主、組等所有屬性均不改變-p

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

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

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

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

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

    # 添加文件到已經打包的文件

    # tar -rf all.tar *.gif

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

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

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

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

1.5 Rsync的企業工作場景說明

01. 兩台伺服器之間數據同步(定時任務cron+rsync

    同步網站內部人員數據信息(定時任務最小周期為1分鐘)

 

02. 兩台伺服器之間數據同步(實時任務inotify/sersync/lrsyncd+rsync

    同步網站用戶人員數據信息

第2章 rsync使用方式

2.1 rsync軟體工作方式

SYNOPSIS

        本地數據同步方式

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

        遠程數據同步方式

       Access via remote shell:

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

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

        守護進程方式同步數據

       Access via rsync daemon:

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

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

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

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

2.1.1 本地數據同步方式(類似於cp

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

參數

含義

rsync       

數據同步命令

[OPTION...] 

rsync命令參數信息

SRC         

要同不得數據信息(文件或目錄)

[DEST]      

將數據傳輸到什麼位置

2.1.1.1 實例演示命令:  

[root@backup ~]# rsync  /etc/hosts /tmp/

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

/tmp/hosts

2.1.2 遠程數據同步方式(類似scp---又稱為隧道傳輸

Access via remote shell:

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

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

說明:需要進行交互傳輸數據。如果想實現免交互傳輸數據,需要藉助ssh+key方式實現

pull 拉:

[USER@]

以什麼用戶身份傳輸數據信息

HOST:    

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

SRC:     

遠端要恏過來的數據信息

[dest]   

恏到本地什麼位置

push:推:

SRC    

本地要懟過去的數據信息

DEST     

懟到遠端什麼位置

2.1.3 【實踐操作】pull

從遠端拉文件到當前目錄

[root@nfs01 ~]# touch /tmp/1.txt

[root@backup ~]# rsync nfs01:/tmp/1.txt .

root@nfs01's password:

[root@backup ~]# ll

total 44

-rw-r--r--  1 root root     0 Oct 11 16:16 1.txt

2.1.4 【實踐操作】push (目錄)

將本地的hosts文件推到遠端伺服器上

[root@backup tmp]# ll

total 4

-rw-r--r-- 1 root root 357 Oct 11 15:12 hosts

使用push的格式 推整個目錄(包括目錄)

[root@backup tmp]# rsync -r /tmp nfs01:/tmp/

root@nfs01's password:

[root@nfs01 tmp]# ll

total 4

drwxr-xr-x 3 root root 4096 Oct 11 16:20 tmp

推整個目錄下的文件(不包括目錄本身)

[root@backup tmp]# rsync -r /tmp/ nfs01:/tmp/

root@nfs01's password:

[root@nfs01 tmp]# ll

total 8

-rw-r--r-- 1 root root  357 Oct 11 16:21 hosts

drwxr-xr-x 3 root root 4096 Oct 11 16:20 tmp

說明:

/tmp   --表示將tmp目錄本身及目錄下的內容進行傳輸

/tmp/  --表示只傳輸tmp目錄下麵的內容信息

2.2 守護進程方式同步數據

系統版本

[root@localhost ~]# uname -a

Linux 2.6.32-696.el6.x86_64 #1 SMP Tue Mar 21 19:29:05 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

Access via rsync daemon:

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

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

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

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

2.2.1 配置rsync守護進程方式(需要有服務端與客戶端)

規劃:

    1backup伺服器作為rsync服務端

    2、以rysnc客戶端作為參照物,將數據推到rsync伺服器上

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

第一個裡程碑: 軟體是否存在

[root@backup ~]# rpm -qa |grep rsync

rsync-3.0.6-12.el6.x86_64

第二個裡程碑: 進行軟體服務配置

[root@backup ~]# vim /etc/rsyncd.conf

uid = rsync

gid = rsync

use chroot = no

max connections = 200

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

-Advertisement-
Play Games
更多相關文章
  • 前言:Mysql資料庫,知識非常的多,要想學精學通這塊知識,估計也要花費和學linux一樣的精力和時間。小編也是只會些毛皮,給大家分享一下~ 一、MySQL安裝 (1)安裝方式: 1 、程式包yum安裝,下實驗一 優點:安裝快,簡單 缺點:定死了各個文件的地方,太死板 2 、二進位格式的程式包:展開 ...
  • 1.查看表空間對應關係 d: cd D:\app\administrator\product\11.2.0\dbhome_1\BIN sqlplus sys/infinitt@spectra as sysdba select * from v$tablespace; 2.關閉資料庫 shutdown ...
  • 1、創建資料庫 use hqj 不會真正的創建db,只有insert之後才會創建2、查看資料庫show dbs3、插入文檔db.hqj.insert({name:'111'})4、查看所有的文檔show tables / show collections.查詢文件中的集合db.hqj.find()/ ...
  • 前兩天,由於系統的架構設計的原因,想通過Java直接訪問Hive資料庫,對於我這個Java以及Hadoop平臺的菜鳥來說,的確是困難重重,不過,還好是搞定了。感覺也不是很麻煩。這篇文章,作為一個感想記錄下來。( 作者:yangyang8848) 一、Hive的訪問方式 一般情況下,Hive是不能直接 ...
  • 問題最終要求的結果是這樣的 是不是很簡單? 是不是很簡單? 然而,資料庫是這樣式的 忽略續借操作,只關註借書、還書操作。 就是說同一張表,同一本書,既可以存借書,也可以存歸還,而且同一本書還可能借出或者歸還多次。 就是說同一張表,同一本書,既可以存借書,也可以存歸還,而且同一本書還可能借出或者歸還多 ...
  • 這幾天一直在學習Vue.js框架。 因為以前沒有前端項目的經驗,也沒學過什麼前端框架,所以,對於vue.js的學習有些不知所措。 在vue.js官網看教程,按照教程指點,可以不用腳手架開發,也可以搭建開發環境。 這裡記錄下搭建過程(教程參考網上各前輩提供的資料): 安裝Node.js:從Node.j ...
  • 在ubuntu16.04中一鍵創建LAMP環境 執行命令apt-get update。 執行命令apt-get install lamp-server^。 在安裝過程中會跳出Mysql資料庫root用戶密碼設置視窗,按要求輸入密碼:123,按Tab鍵選擇"Ok",按回車進入下一步,如下圖所示: 重覆... ...
  • 當出現這個問題後,嘗試一下方法: $ sudo passwd rootEnter new UNIX password://此時輸入你的密碼Retype new UNIX password://再次輸入,相同密碼。passwd: password updated successfully 此時再用su ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...