一.rsync+inotify主服务器部署

1.1安装rsync

[root@nginx ~]# cd /usr/src/

[root@nginx src]# tar zxvf rsync-3.0.9.tar.gz

[root@nginx src]# cd rsync-3.0.9

[root@nginx rsync-3.0.9]# ./configure --prefix=/usr/local/rsync

[root@nginx rsync-3.0.9]# make

[root@nginx rsync-3.0.9]# make install

1.2创建密码认证文件

[root@nginx rsync-3.0.9]# cd /usr/local/rsync/

[root@nginx rsync]# echo "123456" >/etc/rsync.pass

请记住,在server端建立的密码文件,只有密码,没有用户名;而在备份服务端client里建立的密码文件,用户名与密码都有

[root@nginx rsync]# chmod 600 /etc/rsync.pass

1.3安装inotify

[root@nginx rsync]# cd /usr/src/

[root@nginx src]# tar zxvf inotify-tools-3.14.tar.gz

[root@nginx src]# cd inotify-tools-3.14

[root@nginx inotify-tools-3.14]# ./configure --prefix=/usr/local/inotify

[root@nginx inotify-tools-3.14]# make

[root@nginx inotify-tools-3.14]# make install

1.4环境变量配置

echo "PATH=/usr/local/inotify/bin:$PATH" >>/etc/profile.d/inotify.sh

source /etc/profile.d/inotify.sh  #使设置立即生效

echo "/usr/local/inotify/lib" >/etc/ld.so.conf.d/inotify.conf

ln -s /usr/local/inotify/include  /usr/include/inotify

修改系统默认参数:

查看系统默认参数值

sysctl -a | grep max_queued_events

结果是:fs.inotify.max_queued_events = 16384

sysctl -a | grep max_user_watches

结果是:fs.inotify.max_user_watches = 8192

sysctl -a | grep max_user_instances

结果是:fs.inotify.max_user_instances = 128

修改参数:

sysctl -w fs.inotify.max_queued_events="99999999"

sysctl -w fs.inotify.max_user_watches="99999999"

sysctl -w fs.inotify.max_user_instances="65535"

vi /etc/sysctl.conf #添加以下代码

fs.inotify.max_queued_events=99999999

fs.inotify.max_user_watches=99999999

fs.inotify.max_user_instances=65535

:wq! #保存退出

1.5关闭防火墙

vi /etc/selinux/config #编辑防火墙配置文件

#SELINUX=enforcing #注释掉

#SELINUXTYPE=targeted #注释掉

SELINUX=disabled #增加

:wq! #保存,退出

setenforce 0  #立即生效

1.6开启rsync

Rsync –daemon

1.7创建实时出发rsync.sh脚本

vi /usr/local/inotify/rsync.sh   #编辑,添加以下代码

#!/bin/sh

srcdir=/var/atliassian/    //我们要同步的文件夹绝对路径

dstdir=n2  //从服务器rsync配置文件中自定义名称

excludedir=/usr/local/inotify/exclude.list //不同步的文件夹

rsyncuser=n2_user  //从服务器rsync配置文件中的auth user选项一致

rsyncpassdir=/etc/rsync_pass

dstip="192.168.139.129 " //从服务器IP,可以是多个,用逗号隔开

for ip in $dstip

do

rsync -avH --port=873 --progress --delete  --exclude-from=$excludedir  $srcdir $rsyncuser@$ip::$dstdir --password-file=$rsyncpassdir

done

/usr/local/inotify/bin/inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f%e' -e close_write,modify,delete,create,attrib,move $srcdir |  while read file

do

for ip in $dstip

do

rsync -avH --port=873 --progress --delete  --exclude-from=$excludedir  $srcdir $rsyncuser@$ip::$dstdir --password-file=$rsyncpassdir

echo "  ${file} was rsynced" >> /tmp/rsync.log 2>&1

done

done

1.8设置rsync.sh开机自启动

vi /etc/rc.d/rc.local  #编辑,在最后添加一行

sh /usr/local/inotify/rsync.sh & #设置开机自动在后台运行脚本

:wq!  #保存退出

二.从服务器部署rsync

2.1关闭selinux

vi /etc/selinux/config #编辑防火墙配置文件

#SELINUX=enforcing #注释掉

#SELINUXTYPE=targeted #注释掉

SELINUX=disabled #增加

:wq! #保存,退出

setenforce 0  #立即生效

开启防火墙tcp 873端口(Rsync默认端口)

vi /etc/sysconfig/iptables #编辑防火墙配置文件

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 873 -j ACCEPT

:wq! #保存,退出

/etc/init.d/iptables restart #最后重启防火墙使配置生效

注:可以直接关闭防火墙 iptables -F

2.2安装rsync软件

[root@nginx ~]# cd /usr/src/

[root@nginx src]# tar zxvf rsync-3.0.9.tar.gz

[root@nginx src]# cd rsync-3.0.9

[root@nginx rsync-3.0.9]# ./configure --prefix=/usr/local/rsync

[root@nginx rsync-3.0.9]# make

[root@nginx rsync-3.0.9]# make install

2.3配置rsync文件

vim /etc/rsyncd.conf #创建配置文件,添加以下代码

uid = root      #设置rsync运行权限为root

gid = root      #设置rsync运行权限为root

port=873  #默认端口

use chroot = no    #默认为true,修改为no,增加对目录文件软连接的备份

max connections = 40  #最大连接数

timeout = 300       #设置超时时间

pid file = /var/run/rsyncd.pid     #pid文件的存放位置

lock file = /var/run/rsync.lock     #支持max connections参数的锁文件

log file = /var/log/rsyncd.log #日志文件位置启动rsync后自动产生这个文件,无需提前创建

secrets file =/etc/rsync.pass #用户认证配置文件,里面保存用户名称和密码

modtd file=/etc/rsyncd.Motd  #rsync启动时欢迎信息页面文件位置(文件内容自定义)

[n2] #自定义名称

path = /var/atliassian / #rsync服务端数据目录路径

comment=n2 #模块名称与[n2]自定义名称相同

ignore errors

read only = no      #设置rsync服务端文件为读写权限

list = no  #不显示rsync服务端资源列表

hosts allow = 主服务器IP   #允许进行数据同步的客户端IP地址,可以设置多个

auth users = n2_user #执行数据同步的用户名,可以设置多个,逗号隔开,与密码认证文件的用户名一致

#hosts deny = 192.168.21.254 #禁止数据同步的客户端IP地址,可以设置多个

2.4创建密码认证文件

vim /etc/rsync.pass

n2_user:123456  //格式用户名:密码  密码要与服务端rsync.pass密码保持一致

//n2_user 是从服务器rsyncd.conf配置文件中的auth user的值

2.5赋予密码认证文件权限

chmod 600 /etc/rsync.pass

chmod 600 /etc/rsyncd.conf

2.6开启rsync

rsync –daemon

rsync+inotify磁盘数据实时同步的更多相关文章

  1. CentOS 6.5 rsync+inotify实现数据实时同步备份

    CentOS 6.5 rsync+inotify实现数据实时同步备份 rsync    remote sync 远程同步,同步是把数据从缓冲区同步到磁盘上去的.数据在内存缓存区完成之后还没有写入到磁盘 ...

  2. sersync基于rsync+inotify实现数据实时同步

    一.环境描述 需求:服务器A与服务器B为主备服务模式,需要保持文件一致性,现采用sersync基于rsync+inotify实现数据实时同步 主服务器A:192.168.1.23 从服务器B:192. ...

  3. 实战:rsync+inotify实现数据实时同步

    Linux 内核从 2.6.13 版本开始提供了 inotify 通知接口,用来监控文件系统的各种变化情况,如文件存取.删除.移动等.利用这一机制,可以非常方便地实现文件异动告警.增量备份,并针对目录 ...

  4. rsync+inotify实现数据实时同步

    rsync rsync是linux系统下的数据镜像备份工具.支持远程同步,本地复制,或者与其他SSH.rsync主机同步. 优点: 1).可以镜像保存整个目录树和文件系统.保存源目录整个目录树和文件系 ...

  5. 利用rsync+inotify实现数据实时同步脚本文件

    将代码放在Server端,实现其它web服务器同步.首先创建rsync.shell,rsync.shell代码如下: #!/bin/bash host1=133.96.7.100 host2=133. ...

  6. 通过rsync+inotify实现数据实时备份同步

    一.环境描述 测试环境 需求:服务器A与服务器B为主备服务模式,需要保持文件一致性,现采用sersync基于rsync+inotify实现数据实时同步 环境描述: 主服务器172.26.7.50 ,从 ...

  7. Linux下Rsync+sersync实现数据实时同步

    inotify 的同步备份机制有着缺点,于是看了sersync同步,弥补了rsync的缺点.以下转自:http://www.osyunwei.com/archives/7447.html 前言: 一. ...

  8. Rsync+sersync实现数据实时同步

    前言: 一.为什么要用Rsync+sersync架构? 1.sersync是基于Inotify开发的,类似于Inotify-tools的工具 2.sersync可以记录下被监听目录中发生变化的(包括增 ...

  9. Linux下Rsync+Inotify-tools实现数据实时同步

    Linux下Rsync+Inotify-tools实现数据实时同步 注意:下面的三个案例都是rsync 每次都是全量的同步(这就坑爹了),而且 file列表是循环形式触发rsync ,等于有10个文件 ...

随机推荐

  1. [No0000F4]C# 枚举(Enum)

    枚举是一组命名整型常量.枚举类型是使用 enum 关键字声明的. C# 枚举是值数据类型.换句话说,枚举包含自己的值,且不能继承或传递继承. 声明 enum 变量 声明枚举的一般语法: enum &l ...

  2. Java NIO 读取文件、写入文件、读取写入混合

    前言 Java NIO(new/inputstream outputstream)使用通道.缓冲来操作流,所以要深刻理解这些概念,尤其是,缓冲中的数据结构(当前位置(position).限制(limi ...

  3. 分布式锁 AP需求 CP需求

    小结: 1. 2019给Java程序员的唯一1条建议 https://mp.weixin.qq.com/s/dpx4GsGgZ0xtvzKd5riJng

  4. 内部排序->选择排序->简单选择排序

    文字描述 简单排序的基本思想是:每一趟在n-i+1(i=1,2,…,n)个记录中选取关键字最小的记录作为有序列表中的第i个记录. 示意图 略 算法分析 简单排序算法中,所需进行记录移动的操作次数较少, ...

  5. LeetCode 942 DI String Match 解题报告

    题目要求 Given a string S that only contains "I" (increase) or "D" (decrease), let N ...

  6. shiro入门实例,基于ini配置

    基于ini或者关系数据库的,其实都是一样的,重要的是思想. # ==================================================================== ...

  7. Java 第二次测试总结

    Java 第二次测试总结 1. 相关知识点总结 Java测试题循环与递归知识点 补充知识点: for循环语句:for(表达式1:表达式2:表达式3)表达式一负责完成变量的初始化!表达式2是值为bool ...

  8. oracle中并行执行不一定比串行执行快

    并行执行与串行执行相比,能否缩短执行时间,取决于如下几个方面:1.待执行的目标SQL是否适合并行执行,有些SQL是不太适合并行执行的,比如走索引的嵌套循环连接.2.数据库服务器上的硬件资源(如CPU. ...

  9. RSA 时序攻击

    RSA的破解从理论上来讲是大数质数分解,可是就是有一些人另辟蹊径,根据你解密的时间长短就能破解你的RSA私钥. 举一个不恰当但是比较容易理解的例子: 密文0101 私钥0110 明文0100 问题的关 ...

  10. 集成xxl-job分布式任务调度平台

    首先声明,本篇博文基于springboot,基于spring的请自行研究. (一)启动控制平台 首先将xxl-job-master.zip下载下来,然后在mysql数据库创建xxl-job数据库. 执 ...