欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

inotify-tools+rsync實(shí)時(shí)同步文件的配置方法

 更新時(shí)間:2013年02月13日 22:05:45   作者:  
我使用的是google的inotify-tools,比較簡(jiǎn)單.國(guó)內(nèi)有功能很強(qiáng)大的類(lèi)似的程序,但是好復(fù)雜.

服務(wù)器A:
論壇的主服務(wù)器,運(yùn)行DZ X2論壇程序;服務(wù)器B:論壇從服務(wù)器,需要把X2的圖片附件和MySQL數(shù)據(jù)實(shí)時(shí)從A主服務(wù)器實(shí)時(shí)同步到B服務(wù)器.MySQL同步設(shè)置會(huì)在下一編中說(shuō)到.以下是用于實(shí)時(shí)同步兩臺(tái)服務(wù)器的圖片。

因?yàn)橐话愕腞SYNC需要CRON來(lái)定期運(yùn)行SH腳本來(lái)實(shí)現(xiàn)同步,這樣會(huì)帶來(lái)一些問(wèn)題.比如用戶(hù)從主服務(wù)器上傳上一個(gè)圖片,需要最少一分鐘才能從從服務(wù)器顯示出來(lái).自從Linux 2.6內(nèi)核后,支持了inotify機(jī)制,當(dāng)某些文件或文件夾有改變時(shí),發(fā)出相應(yīng)的事件,這樣,第三方程序只要訂閱這些事件,就可以處理相應(yīng)的操作了.這時(shí),只要有文件被修改,就執(zhí)行一次RSNYN,把修改的文件主動(dòng)地上傳到另一臺(tái)服務(wù)器上就可以了。

我使用的是google的inotify-tools,比較簡(jiǎn)單.國(guó)內(nèi)有功能很強(qiáng)大的類(lèi)似的程序,但是好復(fù)雜.另外需要注意的是:如果使用inotify-tools來(lái)實(shí)現(xiàn)實(shí)時(shí)同步,我們的主服務(wù)器--源文件服務(wù)器(也就是服務(wù)器A)實(shí)現(xiàn)是RSYNC的從服務(wù)器,我們的從服務(wù)器--目標(biāo)同步的服務(wù)器(服務(wù)器B)才是RSYNC的主服務(wù)器.不要搞混了哦.

首先從主服務(wù)器A開(kāi)始,需要確定你的系統(tǒng)是否支持inotify:

復(fù)制代碼 代碼如下:

ll /proc/sys/fs/inotify
total 0
-rw-r--r-- 1 root root 0 Jan 4 17:56 max_queued_events
-rw-r--r-- 1 root root 0 Jan 4 17:56 max_user_instances
-rw-r--r-- 1 root root 0 Jan 4 17:56 max_user_watches

能輸出這樣的結(jié)果表示支持。

下載并安裝inotify-tools:

復(fù)制代碼 代碼如下:

wget --no-check-certificate http://github.com/downloads/rvoicilas/inotify-tools/inotify-tools-3.14.tar.gz
tar xzvf inotify-tools-3.14.tar.gz
cd inotify-tools-3.14
./configure --prefix=/usr
make
make install

完成inotify-tools的安裝。

接下來(lái)需要寫(xiě)兩個(gè)SH腳本,inotify_init.sh和inotify_monitor.sh:
inotify_init.sh 用于第一次初始化,也就是運(yùn)行一次完整的RSYNC同步.

vi /root/inotify_init.sh

復(fù)制代碼 代碼如下:

#!/bin/sh
SRC=/主服務(wù)器A需要同步的目錄/ #記得在最后面加/不然RYNC會(huì)自動(dòng)增加一層目錄
DES=bbsatt
IP=從服務(wù)器B的IP
USER=rsync
#DST=/etc/rsyncd 遠(yuǎn)程rsync模塊下的目錄
INWT=/usr/bin/inotifywait
RSYNC=/usr/bin/rsync
$RSYNC -zahqt --password-file=/root/rsync.pwd $SRC $USER@$IP::$DES

保存退出.

設(shè)置可執(zhí)行權(quán)限:
chmod +x /root/inotify_init.sh

接下是inotify_monitor.sh,用于訂閱文件修改事件.注意,因?yàn)樘貏e原因,我在這里做的是增量備份+實(shí)時(shí)同步,也就是說(shuō),當(dāng)主服務(wù)器A上的圖片被刪除是,從服務(wù)器B是不會(huì)刪除圖片的.

vi /root/inotify_monitor.sh

復(fù)制代碼 代碼如下:

#!/bin/bash
##---------------------
sync[0]='/主服務(wù)器需要同步的目錄/,從服務(wù)器B的IP,bbsatt,rsync' # localdir,host,rsync_module,auth_user
INWT=/usr/bin/inotifywait
RSYNC=/usr/bin/rsync
PASS=/root/rsync.pwd
##---------------------
for item in ${sync[@]}; do
dir=`echo $item | awk -F"," '{print $1}'`
host=`echo $item | awk -F"," '{print $2}'`
module=`echo $item | awk -F"," '{print $3}'`
user=`echo $item | awk -F"," '{print $4}'`
$INWT -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f %e' \
--event CLOSE_WRITE,create,move $dir | while read date time file event
do
#echo $event'-'$file
case $event in
MODIFY|CREATE|MOVE|MODIFY,ISDIR|CREATE,ISDIR|MODIFY,ISDIR)
if [ "${file: -4}" != '4913' ] && [ "${file: -1}" != '~' ]; then
cmd="$RSYNC -zahqzt --exclude='*' --password-file=$PASS \
--include=$file $dir $user@$host::$module > /dev/null 2>1&"
echo $cmd
$cmd
fi

MOVED_FROM|MOVED_FROM,ISDIR|DELETE,ISDIR)
if [ "${file: -4}" != '4913' ] && [ "${file: -1}" != '~' ]; then
cmd="$RSYNC -zahqzt --password-file=$PASS --exclude=$file \
$dir $user@$host::$module > /dev/null 2>1&"
echo $cmd
$cmd
fi

esac
done &
done

chmod +x /root/inotify_monitor.sh

設(shè)置RSYNC自動(dòng)登錄驗(yàn)證密碼
vi /root/rsync.pwd
xxxxxx
保存,退出

設(shè)置只有ROOT才可以查看的權(quán)限.
chmod 0600 /root/rsync.pwd

以下是備從務(wù)器B的配置:
安裝RSYNC
yum rsync -y

#----配置RSNYD服務(wù)

vi /etc/rsyncd.conf
內(nèi)容如下,需要把Apache修改成你運(yùn)行網(wǎng)站的用戶(hù)名,我的是因?yàn)樵瓉?lái)使用apache,雖然現(xiàn)在用Nginx,也一直沒(méi)改用戶(hù)名:

復(fù)制代碼 代碼如下:

uid = apache
gid = apache
use chroot = no
max connections = 4
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log
[bbsatt]
path = /從服務(wù)器B本地用于存放備份的目錄
ignore errors
read only = no
list = false
hosts allow = 主服務(wù)器A的IP
auth users = rsync
secrets file = /etc/rsync.pas

vi /etc/rsync.pas
rsync:xxxxxx

chmod 0600 /etc/rsync.pas

啟動(dòng)RSYNCD
rsync --daemon
添加開(kāi)機(jī)自動(dòng)啟動(dòng)服務(wù):
vi /etc/rc.local
rsync --daemon
回到主服務(wù)器A,
vi /etc/rc.local
添加以下內(nèi)容,實(shí)時(shí)開(kāi)機(jī)自動(dòng)同步:

復(fù)制代碼 代碼如下:

/root/inotify_init.sh
/root/inotify_monitor.sh

保存退出

運(yùn)行:

復(fù)制代碼 代碼如下:

/root/inotify_init.sh
/root/inotify_monitor.sh

這樣就能實(shí)現(xiàn)實(shí)時(shí)同步圖片文件了,在主服務(wù)器A的同步目錄下新建一個(gè)文件測(cè)試下吧。

相關(guān)文章

  • Linux執(zhí)行可執(zhí)行文件提示No such file or directory的解決方法

    Linux執(zhí)行可執(zhí)行文件提示No such file or directory的解決方法

    這篇文章主要介紹了Linux執(zhí)行可執(zhí)行文件提示No such file or directory的解決方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-05-05
  • linux查看cpu是否支持64位的方法

    linux查看cpu是否支持64位的方法

    這篇文章主要介紹了linux查看cpu是否支持64位的方法,需要的朋友可以參考下
    2014-03-03
  • xmapp環(huán)境搭建注意事項(xiàng)說(shuō)明

    xmapp環(huán)境搭建注意事項(xiàng)說(shuō)明

    如果要用其他IP訪(fǎng)問(wèn),需要到apache/conf/ext/httpd-xmapp.cf配置文檔下修改最后的一段信息,注釋掉一行拒絕IP的。還有修改一個(gè)允許訪(fǎng)問(wèn)IP的為(*)
    2013-11-11
  • apache和mysql重啟命令

    apache和mysql重啟命令

    修改linux服務(wù)器的http配置之后,必須重啟Apache服務(wù)。
    2009-11-11
  • linux系統(tǒng)安裝msf的過(guò)程詳解

    linux系統(tǒng)安裝msf的過(guò)程詳解

    這篇文章主要介紹了linux系統(tǒng)安裝msf的過(guò)程,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-05-05
  • LINUX查看進(jìn)程的4種方法(小結(jié))

    LINUX查看進(jìn)程的4種方法(小結(jié))

    這篇文章主要介紹了LINUX查看進(jìn)程的4種方法(小結(jié)),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • apache開(kāi)啟偽靜態(tài)的方法分享

    apache開(kāi)啟偽靜態(tài)的方法分享

    這篇文章主要介紹了apache開(kāi)啟偽靜態(tài)的方法分享,需要的朋友可以參考下
    2014-03-03
  • 在 Linux 命令行發(fā)送郵件的 5 種方法(推薦)

    在 Linux 命令行發(fā)送郵件的 5 種方法(推薦)

    這篇文章主要介紹了在 Linux 命令行發(fā)送郵件的 5 種方法,本教程中包含了最流行的 5 個(gè)命令行郵件客戶(hù)端,你可以選擇其中一個(gè),需要的朋友可以參考下
    2019-12-12
  • Vim中的幾種文件備份方法總結(jié)

    Vim中的幾種文件備份方法總結(jié)

    最近在MCTF上看到了Vim的undo備份,順手學(xué)習(xí)了下 Vim 的幾種備份機(jī)制,所以這篇文章主要給大家介紹了關(guān)于Vim中的幾種文件備份,需要的朋友可以參考借鑒,下面來(lái)一起看看吧。
    2017-04-04
  • Ubuntu20的tzselect設(shè)置時(shí)間失效的問(wèn)題,樹(shù)莓派服務(wù)器(推薦)

    Ubuntu20的tzselect設(shè)置時(shí)間失效的問(wèn)題,樹(shù)莓派服務(wù)器(推薦)

    這篇文章主要介紹了Ubuntu20的tzselect設(shè)置時(shí)間失效的問(wèn)題,樹(shù)莓派服務(wù)器,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-05-05

最新評(píng)論