做这个功能的时候遇到了好多坑,在此感谢一下这篇博客

http://kerry.blog.51cto.com/172631/734087/  ,大家参照这篇博客就能实现该功能。

另外如果想详细了解一下的话可以参考这几篇博客:

http://nolinux.blog.51cto.com/4824967/1431426

http://nolinux.blog.51cto.com/4824967/1431742

http://nolinux.blog.51cto.com/4824967/1431811

主要是要实现源服务器中的对应目录文件同步到目标服务器中的对应目录,文件有变化时也需要同步。

服务器版本是Linux内核基本都可以,但是内核版本最好高于2.6.13,因为Linux内核从2.6.13起,加入了对inotify的支持,我们需要使用Inotify实现文件同步监控功能。这边测试用的是CentOS-7 + 。

源服务器上需要安装inotify和rsync服务(inotify功能Linux核心集成,rsync功能一般发行版系统也都有集成,所以我们一般只需要安装一个inotify-tools工具方便inofity功能的调用),还需要提供一个脚本用于启动inotify服务,另外还有一个密码文件(该密码文件中只有一个密码,不需要用户名)。

目标服务器需要安装rsync服务,还需提供一个/etc/rsyncd.conf配置文件,启动同步服务的时候需要指定该配置文件,另外还需要一个认证密码文件(该密码文件中有一个用户名密码键值对,例如 root:123456)。

注意事项

这里记录下碰到的坑,防止以后重复踩到:

1、首先是编写脚本文件的时候因为是在windows下编写的,之后上传到linux的,所以编码有问题,执行报错。

vi xxxx   进入文本编辑器后

set ff?   查看文本格式是dos还是unix

set ff=unix    设置文本格式为unix

2、服务器上的密码文件权限一定要进行设置,不然会读取的时候会报权限错误

chmod 600 xxxx  xxxx为文件完整地址

3、启动inotify服务的时候如果报找不到库的错误,需要在启动前指定一下

设置连接库地址

export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH

启动监控服务

inotifywait -mrq -e create,modify,delete /home/dept12/sums/

参考地址:http://blog.csdn.net/wangxin6722513/article/details/44218893

4、目标服务器启动同步服务的时候需要提供一个/etc/rsyncd.conf文件,还有一个密码文件,密码文件需要设置权限

目标服务器启动同步服务,需要指定配置文件

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

5、相关防火墙需要开放873端口,同一台服务器进出的防火墙都需要开放

iptables -L 查看防火墙状态

Linux系统关闭防火墙可参考:

http://blog.csdn.net/wang1144/article/details/7804404

windows中虚拟机Linux系统关闭防火墙参考:

http://blog.csdn.net/hsl_1990_08_15/article/details/50441058

6、各种rsync错误提示参考地址:

http://blog.chinaunix.net/uid-13954085-id-158637.html

用到的命令

ifconfig    查看当前服务器ip

rsync + 回车 查看Ubuntu系统是否安装了rsync,出现帮助信息说明已经安装

rpm -qa|grep rsync 查看CentOS系统是否安装了rsync

ps -ef|grep rsync 查看同步服务是否启动

Inotify+Rsync实现Linux服务器文件同步的更多相关文章

  1. Linux下利用rsync实现多服务器文件同步

    windows做为文件服务器,使用rsync的windows服务版本,然后配置好就可以了.需要的朋友可以参考下. windows做为文件服务器,使用rsync的windows服务版本:cwRsyncS ...

  2. 两台Linux服务器文件同步

    在给公司或者学校做系统部署的时候,为了数据安全往往我们至少需要两台服务器,接下来请看: 我们要实现的是把客户端(192.168.0.1)的复制到目标服务器(192.168.0.2) 一.目标服务器 1 ...

  3. rsync从linux到linux的文件同步备份

    rsync从linux到linux的文件同步备份 一.环境 需要备份文件的服务器(服务器端):192.168.1.201 (RHEL 5) 接收备份文件的服务器(客户端):192.168.1.202 ...

  4. 负载均衡配置下的不同服务器【Linux】文件同步问题

    负载均衡配置下的不同服务器[Linux]文件同步问题2017年04月13日 22:04:28 守望dfdfdf 阅读数:2468 标签: linux负载均衡服务器 更多个人分类: 工作 问题编辑版权声 ...

  5. BAT实现服务器文件同步

    服务器文件同步有很多工具,例如 GoodSync.rsync.BitTorrent Sync等……其实WINDOWS下自带了一个文件同步利器:ROBOCOPY.它是一个命令行的目录复制命令,自从Win ...

  6. Linux入门(五)linux服务器文件远程管理

     1 使用filezila远程管理linux服务器文件 filezila下载地址:https://filezilla-project.org/ filezila默认只能登录普通用户,如果想要root用 ...

  7. linux实现多台服务器文件同步

    inotify-tools+rsync实时同步文件安装和配置 Linux+Nginx+PHP+MySQL+MemCached+eaccelerator安装优化记录(见 http://www.linux ...

  8. 从Windows 服务器通过sync向Linux服务器定时同步文件

    本文解决的是Windows 下目录及文件向Linux同步的问题,Windows向 Windows同步的请参考:http://www.idcfree.com/article-852-1.html 环境介 ...

  9. inotify-tools + php脚本实现Linux服务器文件监控并邮件提醒

      需求简介: 由于服务器被挂马,经常被写入涉敏感的html网页,领导时常被网监请去喝茶,呵呵你懂的.所以有两个需求,一是找出服务器的木马后门和修复代码漏洞,二是监控服务器涉及增删改查的文件. 第一个 ...

随机推荐

  1. [Draft]iOS.Architecture.16.Truth-information-flow-and-clear-responsibilities-immutability

    Concept: Truth, Information Flow, Clear Responsibilities and Immutability 1. Truth 1.1 Single Source ...

  2. Mac/Linux/Centos终端中上传文件到Linux云服务器

      1.mac上传文件到Linux服务器  scp 文件名 用户名@服务器ip:目标路径 如:scp /Users/test/testFile test@www.linuxidc.com:/test/ ...

  3. Json列表数据查找更新

    /* 从Json数组按某个字段中查找记录 IN array 数据列表 fieldName 字段名称 fieldValue 字段值 OUT 查找到的数据列表 */ var SearchRecordsFr ...

  4. go语言基本语法

    一个例子总结go语言基本语法  demo.go   package main   import (     "fmt" )   //结构体 type PersonD struct ...

  5. 【JAVA】学习笔记(2)

    Java完整的类的定义 [pubilc][abstact|final] class className [extends superclassName] [implements InterfaceNa ...

  6. C#的app.Config文件中设置,可以选择执行环境(左配置,有程序),app.Config中的appSettings首字母必须小写,符合源码要求

  7. pandas库的学习笔记

    Environment pandas 0.21.0 python 3.6 jupyter notebook 开始 习惯上,我们导入如下: import pandas as pd import nump ...

  8. SIFT算法大综合

     SIFT算法原理+参看资料+问题issue 参考书籍——<图像局部不变性特征与描述>王永明.王贵锦著 SIFT特征点提取——详见博客:https://blog.csdn.net/ling ...

  9. 编写shell脚本kill掉占用cpu超过90%以上的程序

    由于集群用户经常会不懂如何提交作业,将作业直接运行到登录节点上,这样导致登录节点的cpu及内存占用很大,导致其他用户甚至无法登录.所以就想到了一种解决方法,写一个shell脚本,常驻登录节点,监控cp ...

  10. MySql技术内幕之MySQL入门(1)

    目录 MySql技术内幕之MySQL入门(1) 安装 关于注释 执行SQL语句 关于命令大小写 创建数据库 查看表的信息 查看更加详细的信息 查看与给定模式相匹配的列 插入数据 利用insert添加行 ...