這篇文章主要為大家展示了Linux如何通過Rsync+Inotify實現(xiàn)本、異地遠程數(shù)據(jù)實時同步功能,內(nèi)容簡而易懂,希望大家可以學習一下,學習完之后肯定會有收獲的,下面讓小編帶大家一起來看看吧。
成都創(chuàng)新互聯(lián)公司堅持“要么做到,要么別承諾”的工作理念,服務領域包括:網(wǎng)站設計、做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣等服務,滿足客戶于互聯(lián)網(wǎng)時代的濉溪網(wǎng)站設計、移動媒體設計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡建設合作伙伴!
0x0 測試環(huán)境
總部生產(chǎn)服務器與分部備份服務器要求實現(xiàn)異地數(shù)據(jù)備份,環(huán)境如下
**centos 6.5**
生產(chǎn)服務器目錄: /home/zytest/files
備份服務器目錄: /home/zytest/files
用戶 / 密碼: zytest / zytest
0x1 生產(chǎn)服務器環(huán)境搭建
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 備份服務器環(huán)境搭建
0x2.1 安裝 xinetd 和 rsync
yum install xinetd rsync -y
0x3 以下內(nèi)容兩臺服務器同步操作
useradd -u 600 zytest passwd zytest zytest su - zytest -c 'mkdir /home/zytest/files' ##創(chuàng)建同步目錄
0x4 備份服務器上配置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上,所以備份服務器安裝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 主服務器上配置inosync腳本文件
0x5.1 ** ##編輯/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)限,設置開機啟動
chmod a+x /root/inosync cp /root/inosync /etc/rc.d/init.d
0x5.3 配置調(diào)用的主腳本文件 /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腳本權(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 目標服務器設置inosync自動啟動并開啟inosync服務
chkconfig --level 3 inosync on /etc/rc.d/init.d/inosync start
0x7 測試 END
在生產(chǎn)服務器/home/zytest/files目錄下創(chuàng)建文件和文件夾,查看備份存儲是否也同步了文件和文件夾,同步即成功。
過程可通過日志查看
tail -f /root/inosync.log
以上就是關于Linux如何通過Rsync+Inotify實現(xiàn)本、異地遠程數(shù)據(jù)實時同步功能的內(nèi)容,如果你們有學習到知識或者技能,可以把它分享出去讓更多的人看到。
新聞名稱:Linux如何通過Rsync+Inotify實現(xiàn)本、異地遠程數(shù)據(jù)實時同步功能
標題網(wǎng)址:http://jinyejixie.com/article10/ggijdo.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供電子商務、標簽優(yōu)化、微信小程序、、品牌網(wǎng)站制作、搜索引擎優(yōu)化
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)