Rsync下行同步+inotify实时同步介绍和部署
生活随笔
收集整理的這篇文章主要介紹了
Rsync下行同步+inotify实时同步介绍和部署
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
Rsync下行同步+inotify實(shí)時(shí)同步介紹和部署
- 一、Rsync
- 1、Rsync同步源
- 2、Rsync服務(wù)器
- 3、同步方式
- 二、配置rsync源
- 三、rsync命令
- 四、配置源的兩種表示方法
- 1、免交互格式
- 五、inotify簡介
- 1、調(diào)整inotify內(nèi)核參數(shù)(優(yōu)化)
- 2、使用inotify-tools輔助工具
- 3、編寫同步腳本
- 六、配置rsync下行同步
- 1、配置rsync源服務(wù)器
- 2、發(fā)起端配置
- 七、rsync+inotify實(shí)時(shí)同步
- 1、rsync源服務(wù)器
- 2、==發(fā)起端(192.168.172.20)==
- 3、驗(yàn)證
一、Rsync
- 支持本地復(fù)制,或者與其他SSH,rsync主機(jī)同步
1、Rsync同步源
- 指備份操作的遠(yuǎn)程服務(wù)器,也稱為備份源
例:
A服務(wù)器同步B服務(wù)器的數(shù)據(jù),B服務(wù)器就是備份源
反過來,B服務(wù)器同步A服務(wù)器的數(shù)據(jù),那么A服務(wù)器就是備份源
2、Rsync服務(wù)器
- 1.Rsync是一款開源的、快速的、多功能的、可實(shí)現(xiàn)全量及增量的本地或遠(yuǎn)程數(shù)據(jù)同步備份的優(yōu)秀工具。并且可以不進(jìn)行改變原有數(shù)據(jù)的屬性信息,實(shí)現(xiàn)數(shù)據(jù)的備份遷移特性。
- 2.Rsync軟件適用于unix/linux/windows等多種操作系統(tǒng)平臺(tái)。
- 3.Rsync是一個(gè)快速和非常通用的文件復(fù)制工具。它能本地復(fù)制,遠(yuǎn)程復(fù)制,或者遠(yuǎn)程守護(hù)進(jìn)程方式復(fù)制。
它提供了大量的參數(shù)來
控制其行為的各個(gè)方面,并且允許非常靈活的方式來實(shí)現(xiàn)文件的傳輸復(fù)制。 - 4.以其delta-transfer算法聞名。rsync監(jiān)聽端口:873 rsync運(yùn)行模式:c/s
3、同步方式
- 全量備份
所有數(shù)據(jù)全部傳送
把原來的文件和新的文件一起統(tǒng)一傳送全量復(fù)制,效率低 - 增量備份
在傳輸數(shù)據(jù)之前通過一些算法通過你有的數(shù)據(jù)和我有的數(shù)據(jù)進(jìn)行對(duì)比,把不一樣的數(shù)據(jù)通過網(wǎng)絡(luò)傳輸增量復(fù)制,效率較高
二、配置rsync源
1、基本思路
- 建立rsyncd.conf配置文件、獨(dú)立的賬號(hào)文件
- 啟用rsync的 --daemon模式
2、配置文件rsyncd.conf
- 認(rèn)證配置auth users、secrets file,不加則為匿名
3、獨(dú)立的賬號(hào)文件
- 用戶名:密碼
- 每行一個(gè)用戶記錄
- 獨(dú)立的賬號(hào)數(shù)據(jù),不依賴系統(tǒng)賬號(hào)
4、啟用rsync服務(wù)
- 通過 --daemon獨(dú)自提供服務(wù),rsync – daemon
- 執(zhí)行kill $(cat /var/run/rsyncd.pid)關(guān)閉服務(wù)
三、rsync命令
#命令的用法 rsync [選項(xiàng)] 原始位置 目標(biāo)位置#----------常用選項(xiàng)-------------------------- -r:遞歸模式,包含目錄及子目錄中的所有文件。 -l:對(duì)于符號(hào)鏈接文件仍然復(fù)制為符號(hào)鏈接文件。 -v:顯示同步過程的詳細(xì)(verbose)信息。 -z:在傳輸文件時(shí)進(jìn)行壓縮(compress)。 -a:歸檔模式,保留文件的權(quán)限、屬性等信息,等同于組合選項(xiàng)“-rlptgoD”。 -p:保留文件的權(quán)限標(biāo)記。 -t:保留文件的時(shí)間標(biāo)記。 -g:保留文件的屬組標(biāo)記(僅超級(jí)用戶使用)。 -o:保留文件的屬主標(biāo)記(僅超級(jí)用戶使用)。 -H:保留硬連接文件。 -A:保留 ACL 屬性信息。 -D:保留設(shè)備文件及其他特殊文件。 --delete:刪除目標(biāo)位置有而原始位置沒有的文件,即刪除差異文件,保留一致性。 --checksum:根據(jù)校驗(yàn)和(而不是文件大小、修改時(shí)間)來決定是否跳過文件。 --password-file=file:從file中得到密碼,用于免交互處理,file文件的權(quán)限要是600四、配置源的兩種表示方法
格式一:
用戶名@主機(jī)地址::共享模塊名格式二:
rsync://用戶名@主機(jī)地址/共享模塊名1、免交互格式
echo "密碼" > /etc/密碼文件 chmod 600 /etc/密碼文件#設(shè)置周期性任務(wù) crontab -e 30 22 * * * /usr/bin/rsync -az --delete --password-file=/etc/密碼文件 backuper@192.168.172.10::wwwroot /optsystemctl restart crond systemctl enable crond五、inotify簡介
- 使用inotify通知接口,可以用來監(jiān)控文件系統(tǒng)的各種變化情況,如文件存取、刪除、移動(dòng)、修改等。利用這一機(jī)制,可以非常方便地實(shí)現(xiàn)文件異動(dòng)告警、增量備份,并針對(duì)目錄或文件的變化及時(shí)作出響應(yīng)。
- 將inotify機(jī)制與rsync工具相結(jié)合,可以實(shí)現(xiàn)觸發(fā)式備份(實(shí)時(shí)同步),即只要原始位置的文檔發(fā)生變化操作;否則處于靜默等待狀態(tài)。
- 因?yàn)閕notify 通知機(jī)制由 Linux 內(nèi)核提供,因此主要做本機(jī)監(jiān)控,在觸發(fā)式備份中應(yīng)用時(shí)更適合上行同步。
1、調(diào)整inotify內(nèi)核參數(shù)(優(yōu)化)
- /etc/sysctl.conf(內(nèi)核參數(shù)配置文件),需要配置
- max_queue_events :監(jiān)控事件隊(duì)列大小
- max_user_instances :最多監(jiān)控實(shí)例
- max_user_watches :每個(gè)實(shí)例最多監(jiān)控文件數(shù)
- 配置的監(jiān)控?cái)?shù)量應(yīng)該大于監(jiān)控目標(biāo)的總文件數(shù)
2、使用inotify-tools輔助工具
- inotifywait:用于持續(xù)監(jiān)控,實(shí)時(shí)輸出結(jié)果
- 可監(jiān)控modify(修改)、create(創(chuàng)建)、move(移動(dòng))、delete(刪除)、attrib(屬性更改)等各種事件,一有變動(dòng)立即輸出結(jié)果。
- inotifywatch:用于短期監(jiān)控,任務(wù)完成后再輸出結(jié)果
- 可用來收集文件系統(tǒng)變動(dòng)情況,并在運(yùn)行結(jié)束后輸出匯總的變化情況。
3、編寫同步腳本
編寫思路:
(1)先設(shè)置兩個(gè)變量:監(jiān)控和執(zhí)行備份
(2)使用while 、read持續(xù)獲取監(jiān)控結(jié)果
(3)根據(jù)結(jié)果判斷,執(zhí)行不同的操作
六、配置rsync下行同步
下行同步:將master服務(wù)器數(shù)據(jù)備份到slave服務(wù)器
inotify-tools-3.14.tar.gz
環(huán)境配置
| 源端 | CentOS7 | 192.168.172.10 | rsync |
| 發(fā)送端 | CentOS7 | 192.168.172.20 | rsync / inotify-tools-3.14.tar.gz |
1、配置rsync源服務(wù)器
192.168.172.10
(1)關(guān)防火墻、安裝相應(yīng)的軟件
(2)建立/etc/rsyncd.conf 配置文件
vim /etc/rsyncd.conf uid = root gid = root use chroot = yes address = 192.168.172.10 port 873 log file = /var/log/rsyncd.log pid file = /var/run/rsyncd.pid hosts allow = 192.168.172.0/24 [wwwroot] path = /var/www/html comment = Document Root of www.test.com read only = yes dont comperss = *.gz *.bz2 *.tgz *.zip *.rar *.z auth users = backuper secrets file = /etc/rsyncd_users.db #---------配置解釋---------------------------------------------- uid = root gid = root use chroot = yes #禁錮在源目錄 address = 192.168.172.10 #監(jiān)聽地址,監(jiān)聽本機(jī)地址 port 873 #監(jiān)聽端口 tcp/udp 873,可通過cat /etc/services | grep rsync查看 log file = /var/log/rsyncd.log #日志文件位置 pid file = /var/run/rsyncd.pid #存放進(jìn)程 ID 的文件位置 hosts allow = 192.168.172.0/24 #允許同步的客戶機(jī)網(wǎng)段 [wwwroot] #共享模塊名稱 path = /var/www/html #源目錄的實(shí)際路徑(同步的目錄) comment = Document Root of www.test.com read only = yes #是否為只讀 dont compress = *.gz *.bz2 *.tgz *.zip *.rar *.z #同步時(shí)不再壓縮的文件類型 auth users = backuper #授權(quán)賬戶,多個(gè)賬號(hào)以空格分隔 secrets file = /etc/rsyncd_users.db #存放賬戶信息的數(shù)據(jù)文件 vim /etc/rsyncd_users.db backuper:35123512chmod 600 /etc/rsyncd_users.dbmkdir -p /var/www/html chmod +r /var/www/html/rsync --daemon netstat -natp | grep rsynccd /var/www/html touch 1.html 2.html ls2、發(fā)起端配置
192.168.172.20
systemctl stop firewalld.service setenforce 0yum -y install rsynccd /opt mkdir abc chmod 777 abc vim /etc/server.pass 35123512chmod 600 /etc/server.pass rsync -az --delete --password-file=/etc/server.pass backuper@192.168.172.10::wwwroot /opt/abcls abc
- 企業(yè)中不可能手動(dòng)執(zhí)行,一般都要使用周期性任務(wù)
七、rsync+inotify實(shí)時(shí)同步
1、rsync源服務(wù)器
192.168.172.10
- 修改rsync源服務(wù)器配置文件
2、發(fā)起端(192.168.172.20)
(1)調(diào)整 inotify 內(nèi)核參數(shù)
- max_queue_events(監(jiān)控事件隊(duì)列,默認(rèn)值為16384)
- max_user_instances(最多監(jiān)控實(shí)例數(shù),默認(rèn)值為128)
- max_user_watches(每個(gè)實(shí)例最多監(jiān)控文件數(shù),默認(rèn)值為8192)
- 當(dāng)要監(jiān)控的目錄、文件數(shù)量較多或者變化較頻繁時(shí),建議加大這三個(gè)參數(shù)的值。
(2)安裝 inotify-tools
yum -y install gcc gcc-c++ make#放入安裝包 tar zxvf inotify-tools-3.14.tar.gz -C /optcd /opt/inotify-tools-3.14/ ./configure && make && make install(3)編寫觸發(fā)式同步腳本
vim /opt/inotify_rsync.sh #!/bin/bash INOTIFY_CMD="inotifywait -mrq -e create,delete,move,modify,attrib /opt/abc/" RSYNC_CMD="rsync -azH --delete --password-file=/etc/server.pass /opt/abc/ backuper@192.168.172.10::wwwroot"$INOTIFY_CMD | while read DIRECTORY EVENT FILE doif [ $(pgrep rsync | wc -l) -le 0 ] ; then$RSYNC_CMDfi donecd /opt/ chmod +x inotify_rsync.sh . /opt/inotify_rsync.sh &#加入開機(jī)自動(dòng)執(zhí)行 chmod +x /etc/rc.d/rc.local echo '/opt/inotify_rsync.sh' >> /etc/rc.d/rc.local3、驗(yàn)證
192.168.172.20
192.168.172.10
總結(jié)
以上是生活随笔為你收集整理的Rsync下行同步+inotify实时同步介绍和部署的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 电脑卡顿?告别烦恼,芝奇内存秒速提速
- 下一篇: 如何构建GFS分布式存储平台?理论+实操