日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
通過rsync+inotify實現(xiàn)本、異地遠程數(shù)據(jù)實時同步

隨著應(yīng)用系統(tǒng)規(guī)模的不斷擴大,對數(shù)據(jù)的安全性和可靠性也提出的更好的要求,rsync在高端業(yè)務(wù)系統(tǒng)中也逐漸暴露出了很多不足,首先,rsync同步數(shù)據(jù)時,需要掃描所有文件后進行比對,進行差量傳輸。如果文件數(shù)量達到了百萬甚至千萬量級,掃描所有文件將是非常耗時的。而且正在發(fā)生變化的往往是其中很少的一部分,這是非常低效的方式。其次,rsync不能實時的去監(jiān)測、同步數(shù)據(jù),雖然它可以通過linux守護進程的方式進行觸發(fā)同步,但是兩次觸發(fā)動作一定會有時間差,這樣就導(dǎo)致了服務(wù)端和客戶端數(shù)據(jù)可能出現(xiàn)不一致,無法在應(yīng)用故障時完全的恢復(fù)數(shù)據(jù)?;谝陨显?,rsync+inotify組合出現(xiàn)了!

專注于為中小企業(yè)提供網(wǎng)站制作、成都做網(wǎng)站服務(wù),電腦端+手機端+微信端的三站合一,更高效的管理,為中小企業(yè)科爾沁左翼免費做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動了近千家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設(shè)實現(xiàn)規(guī)模擴充和轉(zhuǎn)變。

inotify是一種強大的、細粒度的、異步的文件系統(tǒng)事件控制機制。linux內(nèi)核從2.6.13起,加入了inotify支持,通過inotify可以監(jiān)控文件系統(tǒng)中添加、刪除、修改、移動等各種事件,利用這個內(nèi)核接口,第三方軟件就可以監(jiān)控文件系統(tǒng)下文件的各種變化情況,而inotify-tools正是實施監(jiān)控的軟件。

0x0 測試環(huán)境

總部生產(chǎn)服務(wù)器與分部備份服務(wù)器要求實現(xiàn)異地數(shù)據(jù)備份,環(huán)境如下

**centos 6.5**
生產(chǎn)服務(wù)器目錄: /home/zytest/files
備份服務(wù)器目錄: /home/zytest/files
用戶 / 密碼: zytest / zytest

0x1 生產(chǎn)服務(wù)器環(huán)境搭建

0x1.1 安裝gcc編譯器和rsync

yum install gcc rsync -y

0x1.2 拷貝inotify到服務(wù)器并解壓

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 備份服務(wù)器環(huán)境搭建

0x2.1 安裝 xinetd 和 rsync

yum install xinetd rsync -y

0x3 以下內(nèi)容兩臺服務(wù)器同步操作

useradd -u 600 zytest
passwd zytest    
zytest
su - zytest -c 'mkdir /home/zytest/files' ##創(chuàng)建同步目錄

0x4 備份服務(wù)器上配置rsyncd

0x4.1 編輯/etc/xinetd.d/rsync按照以下內(nèi)容修改

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上,所以備份服務(wù)器安裝xinetd

0x4.3 把密碼寫入調(diào)用的密碼文件并賦予權(quán)限

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 主服務(wù)器上配置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 賦予腳本權(quán)限,設(shè)置開機啟動

chmod a+x /root/inosync
cp /root/inosync /etc/rc.d/init.d

0x5.3 配置調(diào)用的主腳本文件 /root/inosync.so.1

rhost=**備份服務(wù)器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腳本權(quán)限,拷貝到/usr/local/bin

chmod a+x /root/inosync.so.1
cp /root/inosync.so.1 /usr/local/bin

0x5.5 把密碼寫入調(diào)用的密碼文件并賦予權(quán)限

echo zytest >> /home/rsync-src.ps
chmod 600 /home/rsync-src.ps

0x6 目標服務(wù)器設(shè)置inosync自動啟動并開啟inosync服務(wù)

chkconfig --level 3 inosync on
/etc/rc.d/init.d/inosync start

0x7 測試 END

在生產(chǎn)服務(wù)器/home/zytest/files目錄下創(chuàng)建文件和文件夾,查看備份存儲是否也同步了文件和文件夾,同步即成功。

過程可通過日志查看

tail -f /root/inosync.log

網(wǎng)頁名稱:通過rsync+inotify實現(xiàn)本、異地遠程數(shù)據(jù)實時同步
文章來源:http://www.5511xx.com/article/dhjcoec.html