rsync+inotify远程同步
生活随笔
收集整理的這篇文章主要介紹了
rsync+inotify远程同步
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
rsync+inotify遠(yuǎn)程同步
- 一、rsync
- 1、rsync服務(wù)器
- 2、同步方式
- 3、rsync命令
- 4、配置源的兩種表示方法
- 5、實(shí)驗(yàn):本地復(fù)制(下行復(fù)制)
- 二、inotify
- 1、簡介
- 2、inotifywait
- 3、實(shí)驗(yàn):rsync+inotify
一、rsync
1、rsync服務(wù)器
- 【1】rsync是一款開源的、快速的、多功能的、可實(shí)現(xiàn)全量及增量的本地或遠(yuǎn)程數(shù)據(jù)同步備份的優(yōu)秀工具。并且可以不進(jìn)行改變?cè)袛?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算法聞名。
- 【5】rsync監(jiān)聽端口:873
- 【6】rsync運(yùn)行模式:C/S
2、同步方式
- 【1】全量備份:
- 原有的數(shù)據(jù)全部傳送
- 把原來的文件和新的文件一起統(tǒng)一傳送
- 全量復(fù)制,效率低
- 【2】增量備份
- 在傳輸數(shù)據(jù)之前通過一些算法通過你有的數(shù)據(jù)和我有的數(shù)據(jù)進(jìn)行對(duì)比,把不一樣的數(shù)據(jù)通過網(wǎng)絡(luò)傳輸
- 增量復(fù)制,效率高
3、rsync命令
rsync [選項(xiàng)] 原始位置 目標(biāo)位置| -r | 遞歸模式,包含目錄及子目錄中的所有文件 |
| -l | 對(duì)于符號(hào)鏈接文件仍然復(fù)制為符號(hào)鏈接文件 |
| -v | 顯示同步過程的詳細(xì)信息 |
| -z | 在傳輸文件時(shí)進(jìn)行壓縮 |
| -a | 歸檔模式,遞歸并保留對(duì)象屬性,等同于-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ù)對(duì)象的校驗(yàn)和來決定是否跳過文件 |
4、配置源的兩種表示方法
格式一: 用戶名@主機(jī)地址::共享模塊名格式二: rsync://用戶名@主機(jī)地址/共享模塊名5、實(shí)驗(yàn):本地復(fù)制(下行復(fù)制)
| rsync | 192.168.184.50 | rsync |
| client | 192.168.184.60 |
二、inotify
1、簡介
- 可以監(jiān)控文件系統(tǒng)的變動(dòng)情況,并做出通知響應(yīng)
- 調(diào)整inotify內(nèi)核參數(shù)(優(yōu)化)
- /etc/sysctl.conf(內(nèi)核參數(shù)配置文件)
- inotifywait:用于持續(xù)監(jiān)控,實(shí)時(shí)輸出結(jié)果
- inotifywatch:用于短期監(jiān)控,任務(wù)完成后再輸出結(jié)果
2、inotifywait
格式:inotifywait [參數(shù)]| -m | 持續(xù)進(jìn)行監(jiān)控 |
| -r | 遞歸監(jiān)控所有子對(duì)象 |
| -q | 簡化輸出信息 |
| -e | 指定要監(jiān)控哪些事件類型 |
3、實(shí)驗(yàn):rsync+inotify
#服務(wù)端:修改rsync配置文件 vim /etc/rsyncd.conf uid = root gid = root read only = no #關(guān)閉只讀,上行同步需要可寫權(quán)限kill `cat /var/run/rsyncd.pid` netstat -natp | grep rsync rsync --daemon netstat -natp | grep rsync#客戶端:inotify內(nèi)核參數(shù) cat /proc/sys/fs/inotify/max_queued_events cat /proc/sys/fs/inotify/max_user_instances cat /proc/sys/fs/inotify/max_user_watches vim /etc/sysctl.conf fs.inotify.max_queued_events = 32768 #監(jiān)控時(shí)間隊(duì)列,默認(rèn)為16384 fs.inotify.max_user_instances = 1024 #最多監(jiān)控實(shí)例數(shù),默認(rèn)為128 fs.inotify.max_user_watches = 1048576 #每個(gè)實(shí)例最多監(jiān)控文件數(shù),默認(rèn)為8192 #當(dāng)要監(jiān)控的目錄、文件數(shù)據(jù)量較多或者變化頻繁時(shí),建議加大參數(shù)值sysctl -p#客戶端安裝 inotify-tools yum -y install gcc gcc-c++ tar zxvf inotify-tools-3.14.tar.gz -C /optcd /opt/inotify-tools-3.14/ ./configure make && make install#執(zhí)行“inotifywait”命令,然后在服務(wù)端向 /var/www/html 目錄下添加文件、移動(dòng)文件,跟蹤屏幕輸出結(jié)果 inotifywait -mrq -e modify,create,move,delete /abc#服務(wù)端編寫觸發(fā)同步腳本 vim /opt/inotify.sh #!/bin/bash INOTIFY_CMD="inotifywait -mrq -e create,delete,move,modify,attrib /abc/" RSYNC_CMD="rsync -apzH --delete --password-file=/etc/server.pass /abc/ backuper@192.168.184.50::wwwroot/" $INOTIFY_CMD | while read DIRECTORY EVENT FILE doif [ $(pgrep rsync | wc -l) -le 0 ] ; then$RSYNC_CMDfi donechmod +x /opt/inotify.sh chmod +x /etc/rc.d/rc.local echo "/opt/inotify.sh" >> /etc/rc.d/rc.local
總結(jié)
以上是生活随笔為你收集整理的rsync+inotify远程同步的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Redis数据库(四)——Redis集群
- 下一篇: 为你讲解ELK的组成与部署