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...