中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

rsync+inotify

發布時間:2020-07-21 05:14:20 來源:網絡 閱讀:290 作者:zhangfang2012 欄目:MongoDB數據庫
rsybc+inotify 企業案例
環境的描述:
將一臺mongod上面的數據實時同步到遠端的一臺主機
服務器地址分配:
備份端172.16.1.88(rsync server)
備份源172.16.1.89(rsync client inotify mongod)
同步的目錄是/var/lib/mongo/,自動同步的順序172.16.1.89---172.16.1.88,我們配置rsync的服務器即可。
一、配置rsync服務端172.16.1.88
1.先使用rpm -qa命令查看系統中是否已經安裝了rsync軟件包。
[root@liuran ~]# rpm -qa | grep rsync
rsync-3.0.6-5.el6_0.1.x86_64
2.rsync安裝好之后沒有主機的配置文件,因此我們需要手動創建rsync的配置
[root@liuran ~]# vim /etc/rsyncd.conf
uid = root
gid = root
use chroot = no
max connections = 20
timeout = 600
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log
[web_log]
path = /data/web_log/
ignore errors
read only = false
list = false
hosts allow = 172.16.1.89
auth users = backuser
secrets file = /etc/rsync.password
3.建立rsync用戶名和密碼文件
[root@liuran ~]# echo "backuser:123" >/etc/rsync.password
4.為/etc/rsync.password授權為600(這個文件)
[root@liuran ~]# chomo -R 600 /etc/rsync.password
到此,服務器端配置完成。
二、客戶端配置
1,設置rsync客戶端密碼文件,客戶端只需要設置rsync同步密碼即可,不用重設用戶名
2.將密碼文件的權限設置成600(這個文件權限必須是600)
[root@asdasda ~]# chmod  -R 600 /etc/rsync.password
配置Inotify(在mongod配置)
http://github.com/downloads/rvoicilas/inotify-tools/inotify-tools-3.14.tar.gz
[root@asdasda ~]# tar zxf inotify-tools-3.14.tar.gz
[root@asdasda ~]# cd inotify-tools-3.14
[root@asdasda inotify-tools-3.14]# ./configure && make && make install
2.為了保證/var/lib/mongod目錄自動同步,配置好mongod的inotify后,寫一個inotify腳本。
[root@asdasda ~]# cat a.sh
#!/bin/bash
src=/var/lib/mongo/
des=web_log
ip=172.16.1.88
/usr/local/bin/inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format  '%T %w%f' -e modify,delete,create,attrib ${src} \
| while read  file
do
rsync -vzrtopg --delete --progress $src backuser@172.16.1.88::$des --password-file=/etc/rsync.password > /dev/null 2>&1 && echo "$src was rsynced"
done

這個腳本的作用就是通過Inotify監控文件目錄的變化,進而觸發rsync進行同步操作。由于這個過程是一種主動觸發操作,是通過系統內核完成的,所以,比起那些遍歷整個目錄的掃描方式來,效率要高很多。

然后我們將此腳本放入后臺運行,輸入如下命令即可:

sh /root/rsync.sh&

接下來我們在mongod上面測試,插入數據,看是否實時的同步數據文件到172.16.1.88上面

編寫插入數據腳本


[root@asdasda mongo]# cat /root/b.sh

#!/bin/bash

for i in {1..2000}

do

mongo<<EOF

use testmongodb2000;

db.mongodb$i.save({name:'liufsfsf',age:1})

db.mongodb$i.save({name:'liufsf',age:2})

db.mongodb$i.save({name:'liufsfsfsd',age:3})

db.mongodb$i.save({name:'liufsffs',age:4})

db.mongodb$i.save({name:'liusfsfs',age:5})

exit;

EOF

done

執行腳本。

進入mongod存放數據的目錄下

[root@asdasda mongo]# ll

total 475628

drwxr-xr-x 2 mongod mongod      4096 Aug 26 13:51 journal

-rwxr-xr-x 1 mongod mongod         6 Aug 26 13:50 mongod.lock

-rw------- 1 mongod mongod  67108864 Aug 26 13:56 testmongodb2000.0

-rw------- 1 mongod mongod 134217728 Aug 26 13:56 testmongodb2000.1

-rw------- 1 mongod mongod 268435456 Aug 26 13:54 testmongodb2000.2

-rw------- 1 mongod mongod  16777216 Aug 26 13:56 testmongodb2000.ns

drwxr-xr-x 2 mongod mongod      4096 Aug 26 13:56 _tmp

172.16.1.88

進入指定備份目錄


[root@liuran web_log]# ll

total 213224

drwxr-xr-x 2 mongod mongod      4096 Aug 26 13:51 journal

-rwxr-xr-x 1 mongod mongod         6 Aug 26 13:50 mongod.lock

-rw------- 1 mongod mongod  67108864 Aug 26 13:56 testmongodb2000.0

-rw------- 1 mongod mongod 134217728 Aug 26 13:56 testmongodb2000.1

-rw------- 1 mongod mongod  16777216 Aug 26 13:54 testmongodb2000.ns

drwxr-xr-x 2 mongod mongod      4096 Aug 26 13:56 _tmp

表示已經同步過來。


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

城口县| 甘德县| 南溪县| 静海县| 万载县| 常熟市| 内丘县| 富民县| 夹江县| 榆树市| 涪陵区| 正蓝旗| 宝鸡市| 陵川县| 会同县| 三原县| 洪洞县| 吉安市| 城口县| 西贡区| 循化| 临泽县| 海宁市| 孟州市| 津市市| 双柏县| 崇信县| 志丹县| 大悟县| 磐安县| 集安市| 南通市| 若羌县| 湘乡市| 富锦市| 加查县| 正阳县| 房产| 鄂州市| 任丘市| 宜章县|