rsync+inotify實現實時同步(小業務場景解決方案)
一、rsync功能介紹
rsync同步操作
• 命令用法
– rsync [選項…] 源目錄 目標目錄
• 同步與複製的差異
– 複製:完全拷貝源到目標
– 同步:增量拷貝,只傳輸變化過的資料
• 本地同步
– rsync [選項…] 本地目錄1 本地目錄2
– rsync [選項…] 本地目錄1/ 本地目錄2
[root@svr7 ~]# mkdir /todir
[root@svr7 ~]# rsync -a /boot /todir //同步整個資料夾
[root@svr7 ~]# rsync -a /boot/ /todir/ //只同步目錄下的資料
同步控制
• rsync操作選項
– -n:測試同步過程,不做實際修改
– –delete:刪除目標資料夾內多餘的文件
– -a:歸檔模式,相當於-rlptgoD
– -v:顯示詳細操作資訊
– -z:傳輸過程中啟用壓縮/解壓
二、inotify功能介紹
• 基本用法
– inotifywait [選項] 目標資料夾
• 常用命令選項
– -m,持續監控(捕獲一個事件後不退出)
– -r,遞迴監控、包括子目錄及檔案
– -q,減少螢幕輸出資訊
– -e,指定監視的 modify、move、create、delete、attrib 等事件類別
三、rsync+ssh遠端同步
與遠端的 SSH目錄保持同步
– 下行:rsync […] user@host:遠端目錄 本地目錄
– 上行:rsync […] 本地目錄 user@host:遠端目錄
四、實時遠端同步
虛擬機器A:
一、無密碼驗證
1.生成公鑰 私鑰驗證
[root@svr7 /]# ssh-keygen #一路回車
[root@svr7 /]# ls /root/.ssh
/root/.ssh/known_hosts #記錄ssh遠端客戶端標識檔案
2.傳遞公鑰 到對方機器
[root@svr7 /]# ssh-copy-id root@192.168.4.207
3.測試無需密碼
rsync -avz --delete /opt/ root@192.168.4.207:/opt/
二、目錄內容的監控
1.安裝 inotify-tools 控制工具可呼叫此機制實現監控
標準的原始碼、編譯安裝即可
[root@svr7 /]# tar -xf /root/tools.tar.gz -C /
[root@svr7 /]# ls /tools/
rpm包: 利用 yum rpm -ivh 進行安裝
步驟1:安裝gcc與make
[root@svr7 /]# yum -y install gcc make
步驟2:tar進行解包
tar -xf /tools/inotify-tools-3.13.tar.gz -C /
ls /
cd /inotify-tools-3.13
ls
步驟3: ./configure 配置,指定功能模組等選項
檢測系統是否安裝gcc
–prefix=路徑 #指定安裝目錄
cd /inotify-tools-3.13
./configure
常見錯誤提示:gcc軟體沒有安裝
checking for gcc… no
checking for cc… no
checking for cl.exe… no
configure: error: no acceptable C compiler found in $PATH
See `config.log` for more details.
步驟4:make 編譯,生成可執行的二進位制程式檔案
cd /inotify-tools-3.13
make
步驟5:make install 安裝,將編譯好的檔案複製到安裝目錄
cd /inotify-tools-3.13
make install
[root@svr7 /]# which inotifywait #檢視是否具備該程式
/usr/local/bin/inotifywait
[root@svr7 /]# inotifywait -rq /opt/
三、書寫Shell指令碼
for迴圈 適合次數固定 的事件
while迴圈 適合死迴圈
while [條件]
do
迴圈執行的語句
done
[root@svr7 /]# vim /root/rsync.sh
#!/bin/bash
while inotifywait -rqq /opt/
do
rsync -az --delete /opt/ root@192.168.4.207:/opt/
done &
[root@svr7 /]# chmod +x /root/rsync.sh
相關文章
- rsync+inotify實時同步
- rsync+inotify資料的實時同步
- 大話業務場景與解決方案-做任務
- 小白都會的rsync遠端同步原理及-------(定期同步與rsync+inotify實時同步)實驗
- 高併發業務場景下的秒殺解決方案 (初探)
- OceanBase 在證券行業基金資管場景落地實踐與解決方案行業
- 企業業務場景如何實現自動化連線?
- 非同步神器:CompletableFuture實現原理和使用場景非同步
- 就這?Spring 事務失效場景及解決方案Spring
- 阿里雲實時大資料解決方案,助力企業實時分析與決策阿里大資料
- ORACLE(Linux版本)實時同步資料到MYSQL(Linux版本)解決方案:OGGOracleLinuxMySql
- 實時同步服務
- 分散式事務解決方案與適用場景分析分散式
- IoT裝置與手機App之間如何實現實時訊息通訊——業務場景最佳實踐APP
- 在 iOS 平臺實現新的非同步解決方案 async/awaitiOS非同步AI
- 實踐場景:解決Spark流處理產生的小檔案Spark
- 直播場景影片和特效解決方案特效
- 揭秘政企安全加速解決方案的架構與應用場景實踐架構
- 如何搭建符合企業數字化電商解決方案之關鍵業務場景分析
- 真實場景再現
- 系統整合解決方案,實現企業內部數字化業務互聯互通
- 虛擬現實解決方案,實現 VR 數智機房VR
- Asynq 實現 Go 後臺作業非同步定時任務處理Go非同步
- 工商銀行分散式服務 C10K 場景解決方案分散式
- nginx實現常見場景Nginx
- unity實現場景跳轉Unity
- NTP時間同步伺服器(區域網時鐘同步)解決方案伺服器
- PHP 併發場景的幾種解決方案PHP
- 五大分散式場景解決方案分散式
- 實用指南:打造卓越企業BI實施解決方案
- Java定時任務解決方案Java
- 微服務分散式事務4種解決方案實戰微服務分散式
- 實時影片拍攝處理SDK解決方案
- Lumen 實時記錄 SQL 執行解決方案SQL
- 如何進行實時ELT解決方案選型?
- 圖撲虛擬現實解決方案,實現 VR 數智機房VR
- 一種小資源情況下RDS資料實時同步StarRocks方案
- 揭秘MySQL的主從同步實現方案MySql主從同步