千家信息网

rsync+inotify

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,rsybc+inotify 企业案例环境的描述:将一台mongod上面的数据实时同步到远端的一台主机服务器地址分配:备份端172.16.1.88(rsync server)备份源172.16.1.89
千家信息网最后更新 2026年11月01日rsync+inotifyrsybc+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.881.先使用rpm -qa命令查看系统中是否已经安装了rsync软件包。[root@liuran ~]# rpm -qa | grep rsyncrsync-3.0.6-5.el6_0.1.x86_642.rsync安装好之后没有主机的配置文件,因此我们需要手动创建rsync的配置[root@liuran ~]# vim /etc/rsyncd.confuid = rootgid = rootuse chroot = nomax connections = 20timeout = 600pid file = /var/run/rsyncd.pidlock file = /var/run/rsync.locklog file = /var/log/rsyncd.log[web_log]path = /data/web_log/ignore errorsread only = falselist = falsehosts allow = 172.16.1.89auth users = backusersecrets file = /etc/rsync.password3.建立rsync用户名和密码文件[root@liuran ~]# echo "backuser:123" >/etc/rsync.password4.为/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 install2.为了保证/var/lib/mongod目录自动同步,配置好mongod的inotify后,写一个inotify脚本。[root@asdasda ~]# cat a.sh #!/bin/bashsrc=/var/lib/mongo/des=web_logip=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 filedorsync -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<

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

表示已经同步过来。


配置 文件 同步 目录 数据 脚本 密码 服务 备份 客户 客户端 服务器 主机 命令 实时 权限 用户 用户名 系统 主动 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 广州万易互联网科技有限公司 北京路客互联网科技有限公司 新华互联网科技学校 科技和互联网公司 互联网科技会 科技互联网技术 腾讯科技 互联网女皇 丰台科技园 互联网公司 科技大学互联网专业好不好 青海省互联网新科技 互联网科技教育视频 上海宁丞科技互联网 智腾互联网科技有限公司 赶超互联网科技 微信多开 朱啸虎曾投资哪些互联网科技企业 工业互联网山东科技大学 互联网时代的科技公司 富国互联网科技002692 2021世界互联网领先科技成果发布 互联网科技创业计划的风险分析 有格互联网科技 成都狮子座互联网科技 上海电发互联网科技有限公司 栖莱科技互联网股份有限公司 智腾互联网科技有限公司 互联网新科技动漫ppt素材 长沙茂晟互联网科技有限公司 互联网领先科技宣传片 易企秀互联网科技是做什么的 神州科技互联网有限公司
0