Linux 實現本、異地遠端資料實時同步功能
這篇文章主要介紹了 透過Rsync+Inotify實現本、異地遠端資料實時同步功能,需要的朋友可以參考 |
0x0 測試環境
總部生產伺服器與分部備份伺服器要求實現異地資料備份,環境如下
**centos 6.5** 生產伺服器目錄: /home/zytest/files 備份伺服器目錄: /home/zytest/files 使用者 / 密碼: zytest / zytest
0x1 生產伺服器環境搭建
0x1.1 安裝gcc編譯器和rsync
yum install gcc rsync -y
0x1.2 複製inotify到伺服器並解壓
cd /root tar xfvz inotify-tools-3.13.tar.gz
0x1.3 進入inotify 目錄安裝
cd inotify-tools-3.13 ./configure make make install /usr/local/bin/inotifywait ##檢查是否安裝成功
0x2 備份伺服器環境搭建
0x2.1 安裝 xinetd 和 rsync
yum install xinetd rsync -y
0x3 以下內容兩臺伺服器同步操作
useradd -u 600 zytest passwd zytest zytest su - zytest -c 'mkdir /home/zytest/files' ##建立同步目錄
0x4 備份伺服器上配置rsyncd
0x4.1 編輯/etc/xinetd.d/rsync按照以下內容修改
disable = yes ==> disable = no flags = IPv6 ==> flags = IPv4 server_args = --daemon ==> server_args = --daemon --config=/etc/rsyncd.conf
0x4.2 編輯/etc/rsyncd.conf 並新增以下
資訊
uid = root gid = root use chroot = no max connections = 1000 strict mode = yes port = 873 pid file = /var/run/rsyncd.pid lock file = /var/run/rsyncd.lock log file = /var/log/rsyncd.log # following for user "zytest", change for other users [zytest] path = /home/zytest ignore errors auth users =zytest secrets file = /home/rsync-dst.ps read only = no list = false
Ps: rsyncd 配置檔案在 xinetd上,所以備份伺服器安裝xinetd
0x4.3 把密碼寫入呼叫的密碼檔案並賦予許可權
echo zytest:zytest >> /home/rsync-dst.ps chmod 600 /home/rsync-dst.ps
0x4.4 透過xinetd啟動rsync
/etc/rc.d/init.d/xinetd restart
0x5 主伺服器上配置inosync
檔案
** ##編輯/root/inosync新增指令碼程式碼**
#!/bin/sh #chkconfig: 3 78 10 #This file exist from compile if [ ! -f /usr/local/bin/inotifywait ] then echo "cannot start. file inotifywait NOT exist!" exit fi #This file is runnable shell script if [ ! -f /usr/local/bin/inosync.so.1 ] then echo "contact administrator. inosync.so.1 NOT exist!" exit fi case "$1" in 'start') /usr/local/bin/inosync.so.1 & ;; 'stop') pid=`ps -ef | grep -v grep | grep "inotifywait" | awk '{print $2}'` kill -9 $pid 2>&1 ;; 'restart') $0 stop $0 start ;; esac
0x5.2 賦予指令碼許可權,設定開機啟動
chmod a+x /root/inosync cp /root/inosync /etc/rc.d/init.d
0x5.3 配置呼叫的主指令碼檔案 /root/inosync.so.1
rhost=**備份伺服器IP** user=zytest src=/home/zytest/files dst=zytest #dst corresponding to [zytest] in file /etc/rsyncd.conf on dst server log=/root/inosync.log /usr/local/bin/inotifywait -mrq --timefmt '%d/%m/%y %H:%M:%S' --format '%T %w%f %e' -e close_write,create,move,delete,attrib $src | while read files do echo == rsync begin == >> $log rsync -avP --password-file=/home/rsync-src.ps --delete $src $user@$rhost::$dst >> $log 2>&1 echo -- rsyncd -- >> $log date >> $log echo "${files} was rsynced " >> $log 2>&1 done
PS: %T後面有空格 %f和%e之間也有空格
0x5.4 賦予inosync.so.1指令碼許可權,複製到/usr/local/bin
chmod a+x /root/inosync.so.1 cp /root/inosync.so.1 /usr/local/bin
0x5.5 把密碼寫入呼叫的密碼檔案並賦予許可權
echo zytest >> /home/rsync-src.ps chmod 600 /home/rsync-src.ps
0x6 目標伺服器設定inosync自動啟動並開啟inosync服務
chkconfig --level 3 inosync on /etc/rc.d/init.d/inosync start
0x7 測試 END
在生產伺服器/home/zytest/files目錄下建立檔案和資料夾,檢視備份儲存是否也同步了檔案和資料夾,同步即成功。
過程可透過日誌檢視
tail -f /root/inosync.log
總結
到此這篇關於Linux 透過Rsync+Inotify實現本、異地遠端資料實時同步功能的文章就介紹到這了
原文來自:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69955379/viewspace-2690216/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 異地資料中心的資料實時同步,該怎樣智慧化實現?
- 工地遠端監控怎樣實現異地組網
- Linux 遠端資料同步工具詳解Linux
- 資料同步——rsync遠端同步
- Linux 伺服器如何實現資料同步?Linux伺服器
- mysql和redis實時同步資料怎麼實現MySqlRedis
- Mysql資料實時同步實踐MySql
- C# 實現Ping遠端主機功能C#
- sync-player:使用websocket實現異地同步播放影片Web
- sync-player:使用websocket實現異地同步播放視訊Web
- 小白都會的rsync遠端同步原理及-------(定期同步與rsync+inotify實時同步)實驗
- 什麼是資料實時同步,為什麼資料實時同步很重要
- 技術乾貨|如何利用 ChunJun 實現資料實時同步?
- ogg在異構資料庫實時雙向同步中如何防止資料死迴圈同步資料庫
- 教你如何運用python實現不同資料庫間資料同步功能Python資料庫
- Restcloud ETl資料通過時間戳實現增量資料同步RESTCloud時間戳
- 【DATAGUARD】Dataguard遠端同步配置最佳實踐
- 快速實現本地資料備份與FTP遠端資料遷移FTP
- linux下mysql主從複製,實現資料庫同步LinuxMySql資料庫
- web 報表輕鬆實現資料異常預警功能Web
- mysql通過kafka實現資料實時同步(三)——es叢集配置MySqlKafka
- Openlayers初步實現地圖功能地圖
- 資料同步:教你如何實時把資料從 MySQL 同步到 OceanBaseMySql
- rsync+inotify資料的實時同步
- MySQL 到Oracle 實時資料同步HYXSMySqlOracle
- 認識資料實時同步神器—Canal
- kettle 實時同步資料(插入/更新/刪除資料)
- ubuntu如何實現遠端操控Ubuntu
- FRP+WoL實現遠端開機+遠端桌面FRP
- 《遠端控制》-服務端實現(一)服務端
- k8s部署canal-1.1.6版本實現MySQL資料庫資料同步K8SMySql資料庫
- 洗碗機廠家如何實現遠端監控與資料分析
- Go實現ssh執行遠端命令及遠端終端Go
- Linux系統目錄實時同步Linux
- Kafka 叢集如何實現資料同步?Kafka
- 用canal監控binlog並實現mysql定製同步資料的功能MySql
- 實現地圖實時定位,拯救“路痴”地圖
- 使用 JuiceFS 快照功能實現資料庫釋出與端到端測試UI資料庫