rsync實時備份監控命令(詳細大全)
阿新 • • 發佈:2021-12-30
一: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