1. 环境
[1] server1:10.0.0.0.200 -> Rsync服务端,需要配置rsync.conf
[2] server2: 10.0.0.0.201 -> Rsync服务端,需要配置rsync.conf
[3] 数据发布端: 10.0.0.202 -> Rsync客户端(不需要配置rsync.conf) + inotify(实时监听文件变化,实时通过rsync推送更新到服务器)
2. 准备
[1] 关闭firewalld,永久关闭selinux, 没开启跳过
[2] 安装依赖包
# yum install -y lrzsz gcc wget gcc-c++ vim
3. 服务端安装
[1] 安装rsync
#yum install -y rsync
[2] 更改配置
#vim /etc/rsyncd.conf
[3] 配置内容rsyncd.conf
#vim /etc/rsync.password #chmod 600 /etc/rsync.password
#工作中指定用户(可以不指定为0, 不能是nobody) uid = 0 gid = 0 #相当于黑洞.出错定位 use chroot = no ##有多少个客户端同时传文件 max connections =200 ##超时时间 timeout = 300 ##进程号文件 pid ifle = /var/run/rsyncd.pid lock file = /var/run/rsync.lock ##日志文件 log file = /var/log/rsyncd.log ##模块开始(这个模块就是待会儿对端写脚本的里面一个参数的名称) [msone] ##需要同步的目录(准确的说是同步过来后放到哪里的目录路径) path = /home/wwwroot ##表示出现错误忽略错误 ignore errors ##表示网络权限可写(本地控制真正可写)(亲测这里写false报错) read only = no ##这里设置IP或让不让同步 list = false #允许的ip或者ip段 hosts allow = 0.0.0.0/32 ##拒绝,以下表示都不拒绝 hosts deny = 0.0.0.0/32 ##认证用户 auth users = rsynclsl ##用户名和密码存放文件 secrets file = /etc/rsync.secrets
[4] 添加同步需要用的用户名和密码(123456)
#useradd -s /sbin/nologin rsynclsl #passwd rsynclsl
[5] 创建认证文件, 为了安全起见给这个文件设置600权限。
#vim /etc/rsync.secrets 文件里面添加如下内容(格式为用户名:密码): rsynclsl:123456 #chmod 600 /etc/rsync.secrets
[6] 同步目录
#mkdir /home/wwwroot #chmod 765 /home/wwwroot
4. 客户端安装
[1] 安装rsync和inotify(rsync只安装不启动不配置)
#yum install -y rsync #yum install -y inotify-tool
[2] 创建/etc/rsync.password文件(整个文件需要600的权限和服务端rsync同步用户的密码,这里是服务器端rsynclsl用户的密码)
#vim /etc/rsync.password #chmod 600 /etc/rsync.password
[3] 测试rsync配置是否成功安装
#rsync -avH --port=873 --delete /home/wwwroot/ rsynclsl@10.0.0.201::msone --password-file=/etc/rsync.password
[4] 编写inotify触发同步脚本:
#!/bin/bash #chkconfig: 345 88 14 src_dir="/home/wwwroot/" dst_dir="msone" exclude_dir="/home/shell/inotify/exclude.list" rsync_user="rsynclsl" rsync_pass="/etc/rsync.password" dst_ip="10.0.0.200 10.0.0.201" rsync_command(){ rsync -avH --port=873 --progress --delete --exclude-from=$exclude_dir $src_dir $rsync_user@$ip::$dst_dir --password-file=$rsync_pass } for ip in $dst_ip; do rsync_command done /usr/bin/inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f%e' -e close_write,modify,delete,create,attrib,move $src_dir | while read file; do for ip in $dst_ip; do rsync_command datetime=`date +"%Y%m%d"` echo "${file} was rsynced" >> /home/shell/inotify/log/${datetime}.log 2>&1 done done
[5] 配置开机启动同步脚本
(1)#vim /etc/rc.d/rc.local 追加内容: nohup /bin/sh /home/shell/inotify/rsync.sh & (2)在centos7中,/etc/rc.d/rc.local的权限被降低了,所以需要执行如下命令赋予其可执行权限 #chmod +x /etc/rc.d/rc.local
相关推荐
rsync+inotify实现服务器之间文件实时同步 rsync+inotify是一种实现服务器之间文件实时同步的解决方案,该方案可以实时监控文件系统的变化,并将变化同步到备份服务器中,保障数据的一致性和实时性。 rsync是一种...
它可以在本地或远程主机之间同步文件,具有高效、可靠、安全等特点。rsync使用了 delta encoding 算法,可以减少数据传输量,提高同步速度。 2. inotify简介 inotify是一种强大的、细粒度的、异步的文件系统事件...
标题中的"rsync+inotify.zip"提示我们这个压缩包包含的是两个工具——rsync和inotify的软件源代码。这两个工具在IT行业中主要用于自动化文件和目录的监控以及同步。 rsync是Linux/Unix系统中广泛使用的数据同步工具...
### rsync+inotify 实现服务器之间目录文件实时同步 #### 软件简介与应用场景 **rsync** 是一种高效且广泛使用的文件同步工具,主要用于远程数据备份、镜像和迁移场景。相较于传统的 `cp` 和 `tar` 备份方式,...
通过 rsync+inotify 的方式,我们可以实现高效、实时的文件系统同步,尤其适用于文件频繁更改且数量庞大的场景。这种方式避免了定期全量扫描的消耗,提高了系统资源利用率和同步速度。不过,在实际部署中,务必考虑...
在服务器之间同步文件时,Rsync 是一个不二之选。Inotify 是一个 Linux 内核提供的文件系统事件监控机制,它可以实时监控文件系统的变化,从而实现实时同步。 本文将详细介绍如何使用 Rsync + inotify 实现实时远程...
rsync+inotify是一个高效且实用的文件实时同步方案,广泛应用于服务器之间的数据备份和同步。rsync是一款强大的文件复制工具,而inotify则是Linux内核提供的一个文件系统事件监控接口。通过结合两者,可以实现对文件...
rsync+inotify开机自启动实时同步增量备份是通过使用rsync与inotify结合来实现Linux系统中文件的实时同步和增量备份。rsync是一个快速且灵活的文件传输工具,而inotify则是一个内核特性,它可以监控文件系统的变化。...
在多机协作项目中,可以保证团队成员之间的文件同步。 总的来说,rsync+inotify实时同步方案是一个强大且灵活的数据同步解决方案,尤其适合对实时性要求高的场景。通过熟练掌握这两个工具的使用,我们可以构建出...
rsync+inotify 文件同步自动配置安装shell,包含inotify3.14的源包,自动安装后可以实现/etc/init.d/rsyncd start|stop 脚本自动复制,在启动关闭时候同时启动关闭inotify监控shell脚本,请使用时认真阅读安装脚本,...
本文将详细介绍如何通过结合`Rsync`与`Inotify`这两种强大工具,在两台Linux服务器之间实现实时目录同步。 #### 二、Rsync简介 `Rsync`是一种用于文件传输的高效工具,它支持增量备份,即只传输两个文件差异的部分...
rsync+inotify实现远程文件时时同步,实现多台服务器的文件同步
rsync 使用所谓的“rsync 算法”来使本地和远程两个主机之间的文件达到同步,这个算法只传送两个文件的不同部分,而不是每次都整份传送,因此速度相当快。 二、rsync 功能及特点 rsync 的功能包括: 1. 实现本地-...
自创(不喜勿喷):通过rsync+inotify两个服务自动化实现实时同步的脚本 方便linux使用者使用的脚本,望大佬完善信息,但不要搞破坏,谢谢使用 #### 软件架构 软件架构说明 ssh免密 rsync+inotify两个服务结合 ###...