rsync同步工具

2021-09-12 22:23:36 字數 3822 閱讀 4837

linux rsync同步工具

1、rsync介紹

rsync是一款開源的、快速的、多功能的、可實現全量及增量的本地或遠端資料同步備份的優秀工具。rsync軟體適用於unix/linux/windows等多種作業系統平台。

rsync和ssh帶的scp命令比較相似,但又優於scp命令的功能,scp每次都是全量拷貝,而rsync可以進行增量拷貝。當然,rsync還可以在本地主機的不同分割槽或目錄之間全量及增量的複製資料,這又類似cp命令,但同樣也優於cp命令,cp每次都是全量拷貝,而rsync可以增量拷貝.利用rsync還可以實現刪除檔案和目錄功能,這又相當於rm命令。

2、rsync特性

支援拷貝特殊檔案如鏈結檔案,裝置等。

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

可以做到保持原檔案或目錄的許可權、時間、軟硬鏈結、屬主、組等所有屬性均不改變。

可實現增量同步,即可同步發生變化的資料,因此資料傳輸效率很高。

可以使用rcp,rsh,ssh等方式來配合傳輸檔案(rsync本身不對資料加密)。

可以通過socket傳輸檔案和資料。

支援匿名的或認證(無需系統使用者)的程序模式傳輸,可實現方便安全的進行資料備份及映象。

3、rsync工作場景

兩台伺服器之間資料同步。

把所有客戶伺服器資料同步到備份伺服器,生產場景集群架構伺服器備份方案。

rsync結合inotify的功能做實時的資料同步

4.rsync的引數選項

rsync基礎用法

同步本地資料

rsync -a  --delete /home  backups/

rsync -a --delete /home/ backups/

在指定複製源時,路徑是否有最後的 「/」 有不同的含義,例如:

• /home : 表示將整個 /home 目錄複製到目標目錄

• /home/ : 表示將 /home 目錄中的所有內容複製到目標目錄

基於ssh的rsync遠端同步資料(推)

rsync  -v  /etc/hosts [email protected]:
基於ssh的rsync遠端同步資料(拉)

rsync	-v  [email protected]:/etc/*.conf  /bak/
拉之前必須確保對端主機安裝了rsync工具

篩選rsync的傳輸目標

使用–exclude/–include選項

rsync -a /repo --exclude "profile.d/" [email protected]:/mnt/ 	

/images 目錄下除過profile.d的檔案,其他檔案都同步到/mnt目錄

rsync -a /repo --include ""

使用 --exclude-from/–include-from 選項

當 include/exclude 的規則較複雜時,可以將規則寫入規則檔案。使用規則檔案可以靈活地選擇

傳輸哪些檔案(include)以及忽略哪些檔案(exclude)。

• 若檔案/目錄在剔除列表中,則忽略傳輸

• 若檔案/目錄在包含列表中,則傳輸

• 若檔案/目錄未被提及,也傳輸

在 rsync 的命令列中使用 --exclude-from=file 或 --include-from=file 讀取規則檔案。

規則檔案 file 的書寫約定:

• 每行書寫一條規則 rule

• 以 # 或 ; 開始的行為注釋行

包含(include)和排除(exclude)規則的語法如下:

• include pattern 或簡寫為 + pattern

• exclude pattern 或簡寫為 – pattern

pattern 的書寫規則如下:

• 以 / 開頭:匹配被傳輸的跟路徑上的檔案或目錄

• 以 / 結尾:匹配目錄而非普通檔案、鏈結檔案或裝置檔案

• 使用萬用字元

• *:匹配非空目錄或檔案(遇到 / 截止)

• **:匹配任何路徑(包含 / )

• ?:匹配除了 / 的任意單個字元

• [:匹配字符集中的任意乙個字元,如 [a-z] 或 [[:alpha:]]

• 可以使用轉義字元 \ 將上述萬用字元還原為字元本身含義

配置匿名rsync服務

yum源安裝:

只需yum安裝rsync和xinetd

yum -y install rsync xinetd

uid = nobody

gid = nobody

use chroot = yes

max connections = 4

pid file = /var/run/rsyncd.pid

exclude = lost+found/

transfer logging = yes

timeout = 900

ignore nonreadable = yes

dont compress = *.gz *.tgz *.zip *.z *.z *.rpm *.deb *.bz2

[repo]

path = /images

commment = pub area

mkdir /images

cp /etc/*.conf /images

配置防火牆規則

firewall-cmd --add-service=rsyncd --per

firewall-cmd --reload

firewall-cmd --list-all

啟用並啟動服務

systemctrl start rsyncd

systemctrl enable rsyncd

從遠端rsync伺服器同步資料

rsync -a rsync: /mnt/

就能把192.168.0.128主機的 /images目錄下的資料同步到本機/mnt下

配置rsync伺服器,需要將共享目錄的selinux context(上下文)配置為指定型別的上下文,否則目錄無法訪問

獲取系統預設定義的所有型別的上下文,使用semanage fcontext -l

檢視檔案的上下文,在使用ls -l時,加上z選項,也就是ls -lz

例如ll -z /

配置上下示例

臨時配置,在autorelabel時,會恢復預設上下文

chcon -t public_content_t /images

永久配置上下文,在autorelabel時,還是會恢復到自定義的上下文型別

#semanage fcontext -a -t public_content_t 「/images(/.*)?」

#restorecon -rv /images

恢復上下文為自定義的public_content_t

配置同步 rsync工具

前言 一台伺服器,為了保證在熱備服務或者負載均衡時,不同的機器間的服務相同。需要設定配置同步。因此我們可以使用遠端資料同步工具rsync來實現。rsync介紹 它具有以下特點 1,可以映象的儲存整個目錄樹和檔案系統。2,可以保留檔案的許可權,時間,軟硬連線等。3,安全 可使用scp或ssh來傳輸,也...

Rsync 資料同步工具

rsync 資料同步工具 一,rsync的工作方式 有三大類分別是 1 本地間類似cp命令的複製方式,本地間的資料傳輸服務。2 網路間兩台不同ip伺服器間資料傳輸,伺服器與伺服器之間進行資料同步。3 多組伺服器之間,以socket程序的方式,啟動rsync程序進行監聽。1,本地間的資料傳輸服務 同一...

Rsync遠端同步工具使用

rsync remote synchronize 是乙個遠端資料同步工具,可以使用 rsync演算法 同步本地和遠端主機之間的檔案。rsync的好處是只同步兩個檔案不同的部分,相同的部分不在傳遞。類似於增量備份,這使的在伺服器傳遞備份檔案或者同步檔案,比起scp工具要省好多時間。sudo apt g...