1. 程式人生 > 其它 >rsync實時備份監控命令(詳細大全)

rsync實時備份監控命令(詳細大全)

一:rsync介紹

1.rsync簡介
rsync英文稱為remote synchronizetion,從軟體的名稱就可以看出來,
rsync具有可使本地和遠端兩臺主機之間的資料快速複製同步映象、遠端備份的功能,
這個功能類似於ssh帶的scp命令,但是又優於scp命令的功能,scp每次都是全量拷貝,而rsync可以增量拷貝。
當然,rsync還可以在本地主機的不同分割槽或目錄之間全量及增量的複製資料,這又類似cp命令。
但是同樣也優於cp命令,cp每次都是全量拷貝,而rsync可以增量拷貝。 rsync官方地址:https:
//rsync.samba.org/ rsync監聽埠:873 rsync執行模式:C
/S client/server rsync簡稱叫做遠端同步,可以實現不同主機之間的資料同步,還支援全量和增量
2.rsync特性
支援拷貝特殊檔案,如連線檔案、裝置等。
可以有排除指定檔案或目錄同步的功能,相當於打包命令tar的排除功能。
可以做到保持原檔案或目錄的許可權、時間、軟硬連結、屬主、組等所有屬性均不改變 –p。
可以實現增量同步,既只同步發生變化的資料,因此資料傳輸效率很高(tar-N)。
可以使用rcp、rsh、ssh等方式來配合傳輸檔案(rsync本身不對資料加密)。
可以通過socket(程序方式)傳輸檔案和資料(服務端和客戶端)*****。
支援匿名的活認證(無需系統使用者)的程序模式傳輸,可以實現方便安全的進行資料備份和映象。
3.rsync應用場景
全量備份
增量備份
4.rsync的傳輸方式
push 推:
客戶端將資料從本地推送至服務端
 
pull 拉:
客戶端將資料從服務端拉取到本地
5.Rsync傳輸模式
1.本地方式(類似於cp,不支援推送和拉取,只是單純的複製)
2.遠端方式(類似於scp,又不同於scp),scp只支援全量備份,rsync支援增量備份和差異備份
:/        :支援推與拉
推:
rsync -avzP ./* [email protected]:/etc
拉:
rsync -avzP [email protected]:/opt ./ 
3.守護程序方式(客戶端和服務端)
::        :是守護程序模式 實現模組,程式執行程式碼,實時監控,實時備份

二:RSYNC使用引數

-a           #歸檔模式傳輸, 等於-tropgDl    -t -r -o -p -g -D -l
-v           #詳細模式輸出, 列印速率, 檔案數量等
-z           #傳輸時進行壓縮以提高效率
-r           #遞迴傳輸目錄及子目錄,即目錄下得所有目錄都同樣傳輸。
-t           #保持檔案時間資訊(保持修改時間不變)
-o           #保持檔案屬主資訊
-g           #保持檔案屬組資訊
-p           #保持檔案許可權(保持檔案許可權不變)
-l           #保留軟連線(是否同步)
-P           #顯示同步的過程及傳輸時的進度等資訊
-D           #保持裝置檔案資訊
-L           #保留軟連線指向的目標檔案(指向)
-e           #使用的通道協議,指定替代rsh的shell程式
--append            # 指定檔案接著上次傳輸中斷處繼續傳輸
--append-verify     # 使用引數續傳(在斷點續傳之後,驗證一下檔案,如果不同,刪除重新開始傳修復檔案)
--exclude=PATTERN   # 指定排除不需要傳輸的檔案
--exclude-from=file # 按照檔案指定內容排除
--bwlimit=100       # 限速傳輸(單位:MB)
解析內容:
--bwlimit=100       # 限速傳輸(單位:MB)

--delete            # 讓目標目錄和源目錄資料保持一致

--password-file=xxx # 使用密碼檔案

--port              # 指定埠傳輸

三:引數使用案例

-a           #歸檔模式傳輸, 等於-tropgDl    -t -r -o -p -g -D -l

    [root@m01 ~]# rsync -a ./2.txt  root@172.16.1.41:/opt/
-v           #詳細模式輸出, 列印速率, 檔案數量等

    [root@m01 ~]# rsync -v ./2.txt  root@172.16.1.41:/opt/
-z           #傳輸時進行壓縮以提高效率

    [root@m01 ~]# rsync -vz ./2.txt  root@172.16.1.41:/opt/
-r           #遞迴傳輸目錄及子目錄,即目錄下得所有目錄都同樣傳輸。

    [root@m01 ~]# rsync -vzr ./a  root@172.16.1.41:/opt/
-t           #保持檔案時間資訊(保持修改時間不變)

    [root@m01 ~]# rsync -vzrt ./a/b/c/2.txt  root@172.16.1.41:/opt/
-o           #保持檔案屬主資訊
-g           #保持檔案屬組資訊
    [root@m01 ~]# rsync -vzrtgo  ./a/b/c/2.txt  root@172.16.1.41:/opt/
-p           #保持檔案許可權(保持檔案許可權不變)

[root@m01 ~]# rsync -vzrtgop  ./a/b/c/2.txt  root@172.16.1.41:/opt/

-l           #保留軟連線(是否同步)

[root@m01 ~]# rsync -vzrtgopl  ./*  [email protected]:/opt/
-P           #顯示同步的過程及傳輸時的進度等資訊

[root@m01 ~]# rsync -vzrtgoplP  ./*  [email protected]:/opt/
-D           #保持裝置檔案資訊

[root@m01 dev]# rsync -vzrtgDopl /dev/tty1   [email protected]:/opt/
-L           #保留軟連線指向的目標檔案(指向)

-e           #使用的通道協議,指定替代rsh的shell程式
--append            # 指定檔案接著上次傳輸中斷處繼續傳輸

[root@m01 ~]# rsync -avzP --append ./*  [email protected]:/opt/
--append-verify     # 使用引數續傳(在斷點續傳之後,驗證一下檔案,如果不同,刪除重新開始傳修復檔案)

[root@m01 ~]# rsync -avzP --append-verify ./110.txt  [email protected]:/opt/
--exclude=PATTERN   # 指定排除不需要傳輸的檔案

[root@m01 ~]# rsync -avzP --append-verify --exclude=2.txt  ./* [email protected]:/opt/
--exclude-from=file # 按照檔案指定內容排除

[root@m01 ~]# rsync -avzP --append-verify --exclude-from=/tmp/exclude.txt  ./* [email protected]:/opt/
--bwlimit=100       # 限速傳輸(單位:MB)

[root@m01 ~]# rsync -avzP --append-verify --bwlimit=10  ./* [email protected]:/opt/

rsync 實時同步

inotify 的使用

    1、rsync 不支援實時同步
    2、一般用 inotify 軟體來監控檔案的實時變化
    3、監控到檔案發生變化,立刻呼叫 rsync 傳輸資料,實現實時同步
複製

實現實時同步步驟

1、安裝 inotify (裝在客戶端)

[root@m01 ~]# yum install inotify-tools -y
2、inotify 引數介紹

-m    持續監控
-r    遞迴
-q    靜默,僅列印時間資訊
--timefmt    指定輸出時間格式
--format    指定事件輸出格式
    %Xe 時間
    %w  目錄
    %f  檔案
-e
    access 訪問
    modify 內容修改
    attrib 屬性修改
    close_write 修改真實檔案內容
    open 開啟
    create 建立
    delete 刪除
    umount 解除安裝

3、開始監控

    /usr/bin/inotifywait -mrq --format "%Xe %w %f" -e create,modify,delete,close_write,attrib /root

[root@m01 ~]# /usr/bin/inotifywait -mrq --format "%Xe %w %f" -e create,modify,delete,close_write,attrib /root

4、實時監控並同步

# 讀取監控的資訊,迴圈呼叫 rsync 傳輸資料即可進行同步
--delete     # 讓目標目錄和源目錄資料保持一致

    /usr/bin/inotifywait -mrq --format "%Xe %w %f" -e create,modify,delete,close_write,attrib /root | while read line;do
    cd /root
    rsync -avzP --delete --password-file=/etc/rsync.passwd ./* [email protected]::backup

# 不要忘記寫 ./* 和 done

[root@m01 ~]# /usr/bin/inotifywait -mrq --format "%Xe %w %f" -e create,modify,delete,close_write,attrib /root | while read line;do
> cd /root
> rsync -avzP --delete --password-file=/etc/rsync.passwd ./* [email protected]::backup
> done