rsync+inotify 文件同步
服务器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 文件同步相关推荐
- Centos7 下 配置 rsync 以及 rsync+inotify 实时同步
Centos 7 下 配置 Rsync 以及 rsync+inotify 实时同步 rsync介绍 rsync是一个开源的快速备份工具,可以在不同主机之间镜像同步整个目录树,支 持增量备份,保持链接和 ...
- rsync+inotify远程同步
rsync+inotify远程同步 一.rsync 1.rsync服务器 2.同步方式 3.rsync命令 4.配置源的两种表示方法 5.实验:本地复制(下行复制) 二.inotify 1.简介 2. ...
- Linux 环境下实战 Rsync 备份工具及配置 rsync+inotify 实时同步
1.什么是 Rsync? Rsync 是一个开源的快速备份工具,是Linux和UNIX操作系统默认安装的组件之一,可在不同主机间镜像同步整个目录,并支持增量备份文件传输,保持链接和权限,采用优化的同步 ...
- 2-3-2 rsync+inotify备份同步数据
RSYNC = Remote Sync 远程同步 高效,一定要结合shell 官网:https://rsync.samba.org Author: Andrew Tridgell, Wayne Dav ...
- Rsync+inotify 实时同步
Rsync+inotify 实时同步(触发式) ========================================================================= ...
- Linux之Rsync+inotify数据同步
rsync远程同步 rsync(Remote Sync): 是一款开源,快速,多功能的可实现本地或远程主机数据同步与增量备份的优秀工具.(数据同步与备份的工具)可使本地主机不同分区或目录之间及本地和远 ...
- rsync 服务器文件同步备份
rsync 服务器文件同步备份 一.安装rsync服务器 下载地址:http://samba.anu.edu.au/ftp/rsync/ 服务器 192.168.1.11 wget http ...
- Linux Rsync实现文件同步备份(转载)
原文地址:Linux Rsync实现文件同步备份作者:夷北 转自:http://www.mike.org.cn/blog/index.php?load=read&id=639###pp=0 [ ...
- rsync+inotify文件实时同步实战
说明:本文部分内容收集于互联网 不完全原创 但都经过本人亲身试验 方案: 1.双向:两台服务器都要开rsync同步和inotify监听 ---> 多对多 2.单向:一台服务器开inotify 其 ...
最新文章
- 微生物组—宏基因组分析专题培训开课啦!
- pycharm导入包
- .NET Core Generic Host项目使用Topshelf部署为Windows服务
- 央视曝徐梦桃夺冠黑科技:竟然还有个虚拟教练???
- error.html mp4,HTML Video error用法及代码示例
- yum升级rhel5
- HTML作业-潮流服装网页
- python airflow_airflow 简明指南
- Open3d之彩色点云配准
- java day43【Filter:过滤器 、Listener:监听器】
- centos7.2 kvm 安装超详细
- 用java怎么开发图片标注工具,一些好用的图片标注工具
- 已解决Mixly与STM32单片机下载成功后无法运行问题
- 以下产品不用再做CCC认证了,你的产品在内吗?
- 【Java-数据脱敏】使用Java对姓名、手机号码、证件号码进行数据脱敏
- Apollo 1.9.2 部署手册实现本地零配置
- 使用postman注册登录后,原先记录消失
- 微信小程序WIFI检测
- android 卡片放大变详情页,ZoomHeader 神交互!饿了么 imageView 放大变为详情页 @codeKK Android开源站...
- 使用C#连接SQL server数据库
热门文章
- Mybatis: 接口编程的实现
- OPPO大数据平台运营研发实践分享
- linux中使用gbd进行单布调试
- python找第二大的数索引_python – 在numpy数组中查找多个值的行索引
- linux分布式文件存储挂载使用_Linux - tmpfs内存文件系统使用
- [Ext JS]3.2.2 文本输入框textfield
- Java Lambda 表达式快速学习
- html dom手机版,HTML DOM - 元素
- html5首页图标怎么除掉,移动端H5页面端如何除去input输入框的默认样式
- 圆弧裁剪算法c++_箍筋算法之争:按外皮长度计算与按中心线长度计算究竟相差多少?...