inotify进行对服务器文件监听,一旦检测到有改动则发起同步rsync服务器文件到客户端

一、安装和下载rsync

下载地址:http://rsync.samba.org/

1、安装步骤:

1)# tar zxvf rsync-3.0.6.tar.gz
  2)# cd rsync-3.0.6
  3)# ./configure  
  4)# make 
  5)# make install

2、配置服务(rsync主服务器ip地址:192.168.13.132 )

2.1先配置rsync服务器192.168.13.132

在/etc/目录下新建rsyncd.conf文件,其中配置信息如下:

uid = root
gid = root
use chroot = no
max connections = 4
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log[backup]
path = /data/test #同步的目录地址
ignore errors
read only = no
list = no
auth users = rsync #同步该模块时用户名  需要与rsync.pass文件下的用户名保持一致即可
secrets file = /etc/rsync.pass

2.2 在/etc/目录下新建rsync.pass文件

注意:如果当前服务器做主服务器(一旦改变文件则需要向其他服务器发送同步文件是),则rsync.pass文件中内容为 123456,如果文件改变,由其他服务器连接当前服务器进行下载文件同步时,rsync.pass文件中内容为rsync:123456

更改rsync.pass的文件权限

#chmod 600 /opt/app/rsync/ect/rsyncucweb.password   (如果不是600,启动服务时候会提示报错)

2.3启动192.168.13.132(主)服务器的rsync服务

rsync --daemon --config=/etc/rsync.conf

编辑/etc/rc.d/rc.local,在最后添加,设置开机启动

rsync --daemon --config=/etc/rsync.conf

查看是否启动成功

[root@localhost /]# cd /
[root@localhost /]# lsof -i:873
COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
rsync   56860 root    4u  IPv4 134802      0t0  TCP *:rsync (LISTEN)
rsync   56860 root    5u  IPv6 134803      0t0  TCP *:rsync (LISTEN)

3、配置服务(rsync备份服务器ip地址:192.168.13.131 )

3.1配置备份服务器配置文件

rsync.conf的配置文件和主服务器配置一致,只是rsync.pass文件内容为rsync:123456

3.2启动192.168.13.131(备份)服务器的rsync服务

rsync --daemon --config=/etc/rsync.conf

编辑/etc/rc.d/rc.local,在最后添加,设置开机启动

rsync --daemon --config=/etc/rsync.conf

待两台rsync服务都启动,可以先测试一波是否能够达到同步

[root@localhost /]#rsync -vzrtopg --delete --progress --password-file=/etc/rsync.pass  /data/test/  rsync@192.168.13.131::backup

以上命令是服务器端跟新后同步到客服端(将主服务器的/data/test目录下的文件同步到192.168.13.131的backup模块中配置的path下)

[root@localhost srv]# rsync -vzrtopg --delete --progress --password-file=/etc/rsync.pass  /data/test/  rsync@192.168.13.131::backup
sending incremental file list
./
aaa
           9 100%    0.00kB/s    0:00:00 (xfer#1, to-check=6/8)
ccc
           8 100%    7.81kB/s    0:00:00 (xfer#2, to-check=5/8)
ddddd
           4 100%    3.91kB/s    0:00:00 (xfer#3, to-check=4/8)
dsaddsad
           4 100%    3.91kB/s    0:00:00 (xfer#4, to-check=3/8)
fds
           5 100%    4.88kB/s    0:00:00 (xfer#5, to-check=2/8)
fdsf
           4 100%    3.91kB/s    0:00:00 (xfer#6, to-check=1/8)
nnn
           5 100%    4.88kB/s    0:00:00 (xfer#7, to-check=0/8)

sent 447 bytes  received 144 bytes  394.00 bytes/sec
total size is 39  speedup is 0.07
[root@localhost srv]#

出现以上信息则代表同步成功

二、安装和下载inotify

用inotify-tool来检测主服务器的文件目录,如果有改动则直接触发同步服务器和客户端的文件,该inoty

1、下载并且安装

# wget http://nchc.dl.sourceforge.net/project/inotify-tools/inotify-tools/3.13/inotify-tools-3.13.tar.gz
# tar xzvf inotify-tools-3.14.tar.gz
# cd inotify-tools-3.13
# ./configure  --prefix=/usr/local/inotify
# make
# make install

2、服务端编写文件夹监视脚本

#vi /srv/rsync.sh  脚本内容如下

#!/bin/bash
src=/data/test/   #监视改文件路径,文件夹内容发生改变触发服务器数据同步
des=backup       #客服端配置的模块(客服端会介绍)
host="192.168.13.131"  #同步到的IP地址,如有多个用空格隔开。例如:host="192.168.10.6 192.168.10.7"
/usr/local/bin/inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f' -e  modify,delete,create,attrib $src | while read files #这边要主要下inotifywait,只有Linux 2.6.13 或更高版的才会兼容
dofor hostip in $hostdo#rsync -vzrtopg --delete --progress rsync@$hostip::$des $src --password-file=/etc/rsync.pass 该命令是客服端跟新后同步到服务器端rsync -vzrtopg --delete --progress --password-file=/etc/rsync.pass $src rsync@$hostip::$des #改命令是服务器端跟新后同步到客服端(看具体使用情况选择)
#--password-file=/etc/rsync.pass 配置到客服端,也就是客户端路径下有rsync.pas 用于配置登陆密码
#rsync 是客户端配置的登陆名doneecho "${files} was rsynced" >>/tmp/rsync.log 2>&1  #生成日志文件done

3、启动nohup

#nohup /bin/bash /srv/rsync.sh &  //后台不挂断地运行命令
 #echo "nohup /bin/bash /root/bin/rsync.sh &" >> /etc/rc.local //设置linux服务器启动自动启动nohup

linux下rsync+inotify同步文件相关推荐

  1. linux下rsync+inotify实现服务器之间文件实时同步

    先介绍一下rsync与inotify. 1.rsync 与传统的cp.tar备份方式相比,rsync具有安全性高.备份迅速.支持增量备份等优点,通过rsync可以解决对实时性要求不高的数据备份需求,例 ...

  2. linux目录自动同步,Linux下rsync+inotify实现实时文件自动同步

    背景:随着时代的发展,手工的同步文件的功能已经不适合为高效的现代化企业的服务了. rsync的局限性: 1.对于大的文件(百万级.千万级的)同步耗时. 2.不能实时的检测,rsync是根据Linux守 ...

  3. linux之rsync远程同步文件

    rsync全名Remote Sync,是类unix下数据镜像的备份工具.可以方便的实现本地,远程备份文件,rsync最重要的一点是支持增量备份. 命令语法 rsync [OPTION]... SRC ...

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

    说明: 操作系统:CentOS 5.X 源服务器:192.168.21.129 目标服务器:192.168.21.127,192.168.21.128 目的:把源服务器上/home/www.osyun ...

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

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

  6. Linux学习--rsync+inotify实现自动同步

    Linux学习–rsync+inotify实现自动同步 rsync remote synchronization(远程同步) rsync 的最大特点是会检查发送方和接收方已有的文件,仅传输有变动的部分 ...

  7. linux监控覆盖视频恢复,linux下使用inotify实时监控文件变更,做完整性检查

    linux下使用inotify实时监控文件变更,做完整性检查 完整性检查是HIDS的重要组成部分之一,linux下做完整性检查的思路有3个 1.哈希对比 2.签名校验 3.inotify 方法有2个: ...

  8. rsync+inotify实现文件增量实时同步

    rsync+inotify实现文件增量实时同步 项目环境 防火墙{项目环境,不是必要条件} 项目需求 一.rsync安装部署 1.检查是否安装rsync 2.测试系统rsync命令 3.新建配置文件 ...

  9. RSYNC 自动同步文件免密

    rsync 免密方式自动同步文件: rsync的客户端方式能够自动同步文件,非常方便,但是它在远程拷贝文件之前提示还需要输入一个密码,要实现脚本自动拷贝,必须要优化掉这个步骤,让rsync以密码文件的 ...

最新文章

  1. base64格式的图片数据如何转成图片
  2. 赛码浪潮笔试题库软件实施岗位_赛码 -HRTechChina中国人力资源科技-向上的力量!...
  3. redis主从复制下哨兵模式---选举原理
  4. 【1】 pythonic modern c++:字符串
  5. moss管理中心崩溃之解决
  6. restful-api-design-references
  7. OpenCV实战5: LBP级联分类器实现人脸检测
  8. 《ArcGIS Runtime SDK for Android开发笔记》——离在线一体化技术:离线矢量数据同步...
  9. Python、Go、JavaScript、Rust 将长盛 5 年!
  10. Labview子VI的创建与调用
  11. RS485使用串口输出最后一个字节固定为FF
  12. 计算机软件期刊是不是中文核心,2020计算机测量与控制是什么期刊_计算机测量与控制是核心期刊吗_计算机测量与控制官网...
  13. php getdigest,http digest
  14. 基于javaweb+JSP+Servlet宿舍管理系统(超级管理员、宿舍管理员、学生)
  15. 单页Web设计优秀案例
  16. DM数据库全面调优指南之Linux操作系统
  17. 常用时序数据地址 MTGNN
  18. 数据库连接_由浅入深搭建Mybatis框架
  19. linux编译内核卡住,kernel启动卡住
  20. 解决魅族17横屏全屏会有白边问题

热门文章

  1. 数组切分【Java蓝桥杯】
  2. WatchKit-Programming-Guide-Apple-Watch开发指南官方翻译及总结
  3. AppStore 提交的更新包一直显示正在处理
  4. 移动端小米首页css
  5. 什么耳机性价比高?五款国产高性价比蓝牙耳机
  6. 一天卖出两万单,国货品牌蜂花靠 “哭穷” 火了?
  7. Could not transfer artifact XXXX from/to maven-default-http-blocker (http://0.0.0.0/)
  8. python大数据运维工程师_【大数据科普系列之二】大数据运维工程师
  9. mysql runoob_MYSQL 学习
  10. 关于计算机的英语手抄报简单,简单英语手抄报大全