服务器A 192.168.0.203

服务器B 192.168.0.204

这里假设B 服务器 为 A的备份服务器

首先 我们在A 服务器 和B 服务器 都装rsync 和 inoifty

B 服务器  rsync 服务端

开启 rsync

rsync --daemon --config=/etc/rsyncd.conf
配置文件如下

rsyncd.conf

pid file = /var/run/rsyncd.pid
#port = 873  #这个端口也注释掉 默认就是873 如果你开了这一段可能会报错
#address = 192.168.0.203   #这个注释掉
uid = root
gid = rootuse chroot = yes
read only = nohosts allow=192.168.0.203  #允许访问的ip
hosts deny=*max connections = 5
motd file = /etc/rsyncd.motd
lock file=/var/run/rsyncd.lock
log file=/var/log/rsyncd.loglog format = %t %a %m %f %b
syslog facility = local3
timeout = 300
#exclude=a b ob.log  #禁止同步的文件[www]
path = /home/wwwroot/default  #同步的目录
list=no
ignore errors
comment = www
auth users = user1 允许的用户
secrets file = /etc/rsyncd.secrets #用户密码

/etc/rsyncd.secrets  密码文件 格式为 用户名:密码   这里记住服务端 要写用户名和密码 客户端的话 只写密码就可以

user1:user1

密码文件需要 600 权限 必须600

chmod 600 /etc/rsyncd.secrets

启动后发现  服务运行了

centos7 里 默认安装好了 rsync 如果没安装 百度一堆教程

inotiyf 需要自己安装 其实这里服务器可以不安装的  客户端需要安装

上面服务端就完成了 接下来回到客户端

A 服务器

首先安装inofity 大致流程如下

224  ls225  wget http://nchc.dl.sourceforge.net/project/inotify-tools/inotify-tools/3.13/inotify-tools-3.13.tar.gz226  ls227  tar zxvf inotify-tools-3.13.tar.gz 228  ls229  cd inotify-tools-3.13/230  ls231  ./configure 232  make && make install233  ls234  inotify235  make236  make install237  ./configure 238  make check239  make240  make install241  inotify242  ls243  cd man/244  ls245  cd ..246  cd src247  ls248  cd ..249  ls250  cd ..251  ls252  inotify253  ls254  cd inotify-tools-3.13/255  ls256  ./configure --prefix=/usr/local/inotify257  make && make install258  cd /usr/local/inotify/259  ls260  cd bin/261  ls262  inotifywait 263  inotifywatch264  ln -s /usr/local/lib/libinotifytools.so.0 /usr/lib64/libinotifytools.so.0265  inotifywatch266  inotifywait

客户端不需要启动 rsync

rsync.conf的配置如下 也可以当做服务端 但是如果想和B 服务器同步的话 不要这样 rsync --daemon --config=/etc/rsyncd.conf  启动 就好

pid file = /var/run/rsyncd.pid
#port = 873
#address = 192.168.0.202
uid = root
gid = rootuse chroot = yes
read only = nohosts allow=192.168.0.204
hosts deny=*max connections = 5
motd file = /etc/rsyncd.motd
lock file=/var/run/rsyncd.lock
log file=/var/log/rsyncd.loglog format = %t %a %m %f %b
syslog facility = local3
timeout = 300[www]
path = /home/wwwroot/default
list=no
ignore errors
comment = www
auth users = user1
secrets file = /etc/rsyncd.secrets

A 服务器 只需要配置密码文件就好 如下

[root@www ~]# cat /etc/rsyncd.secrets 
user1

密码文件需要 600 权限 必须600

chmod 600 /etc/rsyncd.secrets

然后 我们设置一下 inotify

vim inotify_back.sh  配置如下

#!/bin/bash
host=192.168.0.204
src=/home/wwwroot/default/
des=www
user=user1
/usr/local/inotify/bin/inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f%e' -e modify,delete,create,attrib $src \
| while read files
do
#/usr/bin/rsync -aSz --delete  --exclude-from=exclude.txt  --password-file=/etc/rsyncd.secrets $src $user@$host::$des
/usr/bin/rsync -auvrtzopgP  --progress --delete  --exclude-from '/usr/local/inotify/exclude.txt'  --password-file=/etc/rsyncd.secrets $src $user@$host::$des
#/usr/bin/rsync -av --delete  --exclude-from '/usr/local/inotify/exclude.txt'  --password-file=/etc/rsyncd.secrets $src $user@$host::$des
echo "${files} was rsynced" > /var/log/rsyncd.log 2>&1
done

chmod a+x  inotify_back.sh  给与执行权限

上面的文件里 如果加上 --delete 那么客户端删除的 服务器端也会删除  如果不需要删除 可以去掉 --delete参数 这个参数挺危险的

//设置一个禁止同步的文件 里面写上禁止同步的文件或者文件夹类型

比如下面的这个大概就是所有的log cache文件夹  cache文件下的所有文件 fk文件夹 fk文件下的所有  还有所有txt

这里如果出现不管用的话 记得先停止一下rysnc服务端脚本 重新启动一下 或者重新启动一下整个服务器 还有客户端

之前遇到这个问题很神奇 重启后就好了 或者杀掉所有相关的rsync进程

[root@www inotify]# cat exclude.txt 
*.log*
cache/
cache/*
fk/
fk/*
*.txt

最后以这种方式启动 inotify

nohup ./inotify_back.sh &
这样就算shell 窗口关掉 也可以继续服务

启动后 回到客户端 touch一个kk文件

然后去服务端观察发现

到此为止 发现文件可以同步了

测试一下 在上传的禁止的文件里

发现禁止的txt文件 并没有被同步

到此位置测试同步完成了

rsync+inotify 文件同步相关推荐

  1. Centos7 下 配置 rsync 以及 rsync+inotify 实时同步

    Centos 7 下 配置 Rsync 以及 rsync+inotify 实时同步 rsync介绍 rsync是一个开源的快速备份工具,可以在不同主机之间镜像同步整个目录树,支 持增量备份,保持链接和 ...

  2. rsync+inotify远程同步

    rsync+inotify远程同步 一.rsync 1.rsync服务器 2.同步方式 3.rsync命令 4.配置源的两种表示方法 5.实验:本地复制(下行复制) 二.inotify 1.简介 2. ...

  3. Linux 环境下实战 Rsync 备份工具及配置 rsync+inotify 实时同步

    1.什么是 Rsync? Rsync 是一个开源的快速备份工具,是Linux和UNIX操作系统默认安装的组件之一,可在不同主机间镜像同步整个目录,并支持增量备份文件传输,保持链接和权限,采用优化的同步 ...

  4. 2-3-2 rsync+inotify备份同步数据

    RSYNC = Remote Sync 远程同步 高效,一定要结合shell 官网:https://rsync.samba.org Author: Andrew Tridgell, Wayne Dav ...

  5. Rsync+inotify 实时同步

     Rsync+inotify 实时同步(触发式) ========================================================================= ...

  6. Linux之Rsync+inotify数据同步

    rsync远程同步 rsync(Remote Sync): 是一款开源,快速,多功能的可实现本地或远程主机数据同步与增量备份的优秀工具.(数据同步与备份的工具)可使本地主机不同分区或目录之间及本地和远 ...

  7. rsync 服务器文件同步备份

    rsync 服务器文件同步备份 一.安装rsync服务器 下载地址:http://samba.anu.edu.au/ftp/rsync/   服务器    192.168.1.11 wget http ...

  8. Linux Rsync实现文件同步备份(转载)

    原文地址:Linux Rsync实现文件同步备份作者:夷北 转自:http://www.mike.org.cn/blog/index.php?load=read&id=639###pp=0 [ ...

  9. rsync+inotify文件实时同步实战

    说明:本文部分内容收集于互联网 不完全原创 但都经过本人亲身试验 方案: 1.双向:两台服务器都要开rsync同步和inotify监听 ---> 多对多 2.单向:一台服务器开inotify 其 ...

最新文章

  1. 微生物组—宏基因组分析专题培训开课啦!
  2. pycharm导入包
  3. .NET Core Generic Host项目使用Topshelf部署为Windows服务
  4. 央视曝徐梦桃夺冠黑科技:竟然还有个虚拟教练???
  5. error.html mp4,HTML Video error用法及代码示例
  6. yum升级rhel5
  7. HTML作业-潮流服装网页
  8. python airflow_airflow 简明指南
  9. Open3d之彩色点云配准
  10. java day43【Filter:过滤器 、Listener:监听器】
  11. centos7.2 kvm 安装超详细
  12. 用java怎么开发图片标注工具,一些好用的图片标注工具
  13. 已解决Mixly与STM32单片机下载成功后无法运行问题
  14. 以下产品不用再做CCC认证了,你的产品在内吗?
  15. 【Java-数据脱敏】使用Java对姓名、手机号码、证件号码进行数据脱敏
  16. Apollo 1.9.2 部署手册实现本地零配置
  17. 使用postman注册登录后,原先记录消失
  18. 微信小程序WIFI检测
  19. android 卡片放大变详情页,ZoomHeader 神交互!饿了么 imageView 放大变为详情页 @codeKK Android开源站...
  20. 使用C#连接SQL server数据库

热门文章

  1. Mybatis: 接口编程的实现
  2. OPPO大数据平台运营研发实践分享
  3. linux中使用gbd进行单布调试
  4. python找第二大的数索引_python – 在numpy数组中查找多个值的行索引
  5. linux分布式文件存储挂载使用_Linux - tmpfs内存文件系统使用
  6. [Ext JS]3.2.2 文本输入框textfield
  7. Java Lambda 表达式快速学习
  8. html dom手机版,HTML DOM - 元素
  9. html5首页图标怎么除掉,移动端H5页面端如何除去input输入框的默认样式
  10. 圆弧裁剪算法c++_箍筋算法之争:按外皮长度计算与按中心线长度计算究竟相差多少?...