inotify+rsync实现集群文件实时同步

12 篇文章 1 订阅

server1(服务端):172.16.111.68
server2(客户端):172.16.111.61
实现server2实时同步server1的数据!

###############server1###############
1.安装rsync和xinetd,并创建目录:
yum install rsync xinetd
mkdir -p /home/rsync/
mkdir -p /home/rsync/log/
mkdir -p /home/rsync/pid/
mkdir -p /home/rsync/run/

2.配置xinetd:
vi /etc/xinetd.d/rsync
#disable = yes修改为
disable = no

3.启动xinetd服务:
service xinetd start

4.编辑rsyncd.conf配置文件: /home/rsync/rsyncd.conf  >>> /etc/rsyncd.conf

uid = root
gid = root
port=873
use chroot = no
read only = no
list = no
max connections = 0
timeout = 600
log file = /home/rsync/log/rsyncd.log
pidfile = /home/rsync/pid/rsyncd.pid
lock file = /home/rsync/run/rsync.lock
[rsync]
path = /alidata/
comment = rsync
#ignore errors
auth users =  root
##secrets file = /home/rsync/rsync.pass
secrets file = /etc/rsyncd.secrets
hosts allow = 172.16.111.133
hosts deny = *
###############################
vim /home/rsync/rsyncd.conf
uid = root
gid = root
port=873
use chroot = no
read only = no
list = no
max connections = 0
timeout = 600
log file = /home/rsync/log/rsyncd.log
pidfile = /home/rsync/pid/rsyncd.pid
lock file = /home/rsync/run/rsync.lock
[rsync]
path = /alidata/www/xu/
comment = rsync
ignore errors
auth users =  rsync
secrets file = /home/rsync/rsync.pass
hosts allow = 172.16.111.133
hosts deny = *

5.创建用户认证文件:
vim /home/rsync/rsync.pass
vim /etc/rsyncd.secrets
root:WO4aX6QUZgqmfaOi         # 130
root:T7ytUcf5DecPeZDZ     # 152
root:I1obwEz5ova2xI4v     # 161
root:odtLe7XhgtxpDlwM    # 182
root:XkGbDd03QqHJt6R0    # 98


6.设置文件权限:
chmod 600 /home/rsync/rsyncd.conf
chmod 600 /etc/rsyncd.secrets

7.配置rsyncd.conf软链接:
ln -s /home/rsync/rsyncd.conf /etc/rsyncd.conf

8.重启xinetd服务:
service xinetd restart

###############server2###############
1.安装rsync和xinetd,并创建目录:
yum install rsync xinetd
mkdir -p /home/rsync/
mkdir -p /home/rsync/log/
mkdir -p /home/rsync/pid/
mkdir -p /home/rsync/run/

2.配置xinetd:
vi /etc/xinetd.d/rsync
#disable = yes修改为
disable = no

3.启动xinetd服务:
service xinetd start

4.创建认证密码文件:
vim /home/rsync/passwd130.txt    WO4aX6QUZgqmfaOi  
vim /home/rsync/passwd152.txt    T7ytUcf5DecPeZDZ
vim /home/rsync/passwd161.txt    I1obwEz5ova2xI4v
vim /home/rsync/passwd182.txt    odtLe7XhgtxpDlwM
vim /home/rsync/passwd98.txt    XkGbDd03QqHJt6R0


5.执行同步脚本:

rsync同步主服务器代码:rsync -vzrtopg --progress --password-file=/home/rsync/passwd.txt root@172.16.39.254::rsync /alidata/www/xu           ####  --delete参数:会清空本地/alidata/www/xu路劲下的文件

【生产】
rsync -avH --port=873 --progress /alidata/ root@172.16.111.132::rsync --password-file=/home/rsync/passwd130.txt
rsync -avH --port=873 --progress /alidata/ root@172.16.111.131::rsync --password-file=/home/rsync/passwd161.txt

rsync -avH --port=873 --progress /alidata/ root@172.16.111.129::rsync --password-file=/home/rsync/passwd98.txt
rsync -avH --port=873 --progress /alidata/ root@172.16.40.0::rsync --password-file=/home/rsync/passwd152.txt
rsync -avH --port=873 --progress /alidata/ root@172.16.111.130::rsync --password-file=/home/rsync/passwd182.txt


6.
rsync向服务器推送代码同步:rsync -avH --port=873 --progress /alidata/www/xu/ root@172.16.39.254::rsync --password-file=/home/rsync/passwd.txt
 rsync -avH --port=873 --progress /alidata/www/xu/ root@172.16.111.68::rsync --password-file=/home/rsync/passwd1.txt

7.任务计划每分钟执行一次:
crontab -e
*/1 * * * * /usr/bin/rsync -vzrtopg --progress --delete --password-file=/home/rsync/passwd.txt rsync@192.168.10.1::rsync /home/www/html

【inotify】
yum install inotify-tools   # 安装
ls /usr/bin/inotify*     # 查看inotify*命令 

# 检测/mydata路径下所有文件的操作
/usr/bin/inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w %f %e' -e modify,delete,create,attrib /alidata/

目前先留着98

DST: 服务器中同步路径
SRC: 客户端中被同步路径  

【211测试】
#!/bin/bash
/usr/bin/inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w %f %e' -e modify,delete,create,attrib /mydata/ | while read events
do                
        rsync -azv --port=873 --progress /mydata/ root@172.16.111.68::rsync --password-file=/home/rsync/passwd1.txt
        rsync -azv --port=873 --progress /mydata/ root@172.16.39.254::rsync --password-file=/home/rsync/passwd.txt
done 
【40生产】
#!/bin/bash
/usr/bin/inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w %f %e' -e modify,delete,create,attrib /alidata/ | while read events
do                
        rsync -avH --port=873 --progress /alidata/ root@172.16.111.132::rsync --password-file=/home/rsync/passwd130.txt
        rsync -avH --port=873 --progress /alidata/ root@172.16.111.131::rsync --password-file=/home/rsync/passwd161.txt
        rsync -avH --port=873 --progress /alidata/ root@172.16.111.129::rsync --password-file=/home/rsync/passwd98.txt
        rsync -avH --port=873 --progress /alidata/ root@172.16.40.0::rsync --password-file=/home/rsync/passwd152.txt
        rsync -avH --port=873 --progress /alidata/ root@172.16.111.130::rsync --password-file=/home/rsync/passwd182.txt
done

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值