基于rsync和inotify的服务器文件同步
使用场景:
使用于应用服务器中的集群,需要同时部署多个服务时。使用了同步,只需修改服务端的文件,它会自动同步到客户端的机器上,从而保证了代码的一致性。
安装需要软件:
inotify-tools-3.13.tar.gz,rsync-3.1.1.tar.gz
客户安装步骤:
- 检查系统是否安装rsync,如果安装则不需要重新安装。如没有安装请进行第二步。
-
安装rsync。
tar zxvf rsync-3.1.1.tar.gz cd rsync-3.1.1 ./configure ; make ; make install
-
创建配置文件
mkdir /etc/rsyncd/ vim /etc/rsyncd/rsyncd.conf
-
修改配置文件
# Section 1: Global settings port = 873 uid = root #用户 gid = root #用户所在组 use chroot = yes read only = no max connections = 7 pid file = /var/run/rsyncd.pid log file = /var/log/rsyncd.log #日志输入 hosts allow = 192.168.1.1 #服务器端的地址 transfer logging = yes log format = %t %a %m %f %b syslog facility = local3 timeout = 300 # Section 2: Directory to be synced [mp3] #模块名称,服务器端会根据这个名称进行查找 path = /data/mp3 #同步文件的目录 list = false ignore errors = yes auth users = root secrets file = /etc/rsyncd/rsyncd.pass #用户名、密码所在文件
-
创建密码文件/etc/rsyncd/rsyncd.pass
root:123456 #用户名、密码
-
修改rsyncd.pass的权限
# chmod 600 /etc/rsyncd/rsyncd.pass #注意:一定要是600的权限,其它权限不好用
- 启动服务,进行验证
#启动服务 # /usr/bin/rsync --daemon --config=/etc/rsyncd/rsyncd.conf 查看状态,是否成功 # netstat -nutlp | grep :873
服务器安装配置:
- 检查是否安装rsync软件,如果没有安装进行安装步骤参考客户端,但不需要配置。
- 安装inotify软件
tar xzvf inotify-tools-3.13.tar.gz cd inotify-tools-3.13 ./configure --prefix=/usr/local/inotify make make install
- 创建配置文件并修改权限
#创建密码文件 # vim /etc/rsyncd/rsyncd.pass #此文件中只需写入密码即可 123456 #修改权限,请不要使用其它权限 chown 600 /etc/rsyncd/rsyncd.pass
- 建立自动同步的脚本,使用inotifywait监控目录,当监控目录改变的时候,调用rsync同步改变的文件
# vim /var/tmp/auto_sync.sh #!/bin/bash # DESTHOST=192.168.1.107 #客户端地址 DESTHOSTDIR=/data/mp3/ #客户端目录 SRCDIR=/data/mp3/ #服务端目录 inotifywait -mr --timefmt '%d/%m/%y %H:%M' --format '%T %w %f' -e close_write,modify,delete,create,attrib $SRCDIR | while read DATE TIME DIR FILE; do FILECHANGE=${DIR}${FILE} echo "At ${TIME} on ${DATE}, file $FILECHANGE will be backed up via rsync" >> /var/log/mp3sync.log rsync -avz --password-file=/etc/rsyncd/rsyncd.pass $SRCDIR root@${DESTHOST}::mp3 &>/dev/null && \ echo "At ${TIME} on ${DATE}, file $FILECHANGE was backed up via rsync" >> /var/log/mp3sync.log done
- 修改此文件权限
#修改权限 #chmod u+x /var/tmp/auto_sync.sh #启动服务 # /var/tmp/auto_sync.sh & #开机自动运行 # echo '/var/tmp/auto_sync.sh &' >> /etc/rc.local
- 验证是否成功,在服务器对应目录下新增一个文件,去客户端目录下查看是否有此文件。
相关推荐
rsync+inotify是一种实现服务器之间文件实时同步的解决方案,该方案可以实时监控文件系统的变化,并将变化同步到备份服务器中,保障数据的一致性和实时性。 rsync是一种文件同步工具,可以实现触发式的文件同步,但...
rsync+inotify可以应用于文件服务器、备份系统、数据中心等领域,实现文件之间的实时同步备份,提高数据安全性和可靠性。 CentOS 7下用rsync+inotify实现实时同步可以实现文件之间的实时同步备份,具有高效、可靠、...
我们将在服务器之间建立 Rsync 服务器,然后使用 inotify 监控文件系统的变化,並实时同步文件。 Rsync 服务器配置 首先,我们需要在服务器上安装 Rsync。使用以下命令安装 Rsync: ``` [root@mail named]# rpm -q...
rsync+inotify 是一种高效的实时文件同步解决方案,尤其适用于需要确保数据安全性和可靠性的大型应用系统。rsync 是一个强大的文件同步工具,而 inotify 是 Linux 内核提供的一种文件系统事件监控机制。它们结合使用...
### rsync+inotify 实现服务器之间目录文件实时同步 #### 软件简介与应用场景 **rsync** 是一种高效且广泛使用的文件同步工具,主要用于远程数据备份、镜像和迁移场景。相较于传统的 `cp` 和 `tar` 备份方式,...
本文档记录了使用 rsync 和 inotify 实现实时同步项目的详细笔记实战案例。rsync 是一个功能强大的文件同步工具,而 inotify 是一种 Linux 内核提供的文件系统事件侦听机制。通过将这两种技术结合使用,可以实现实时...
首先,rsync是一种基于Rsync算法的远程同步工具,能够高效地同步文件和目录,支持本地文件系统和远程文件系统之间的同步。它能够检测文件变化并只传输变化的部分,从而提高同步效率,特别适合于文件更新频繁的环境。...
通过上述步骤,我们成功地在两台Linux服务器之间实现了基于`Rsync`与`Inotify`的实时目录同步方案。这种方案不仅能够确保数据的一致性和实时性,还能极大地提高数据同步的效率,适用于各种需要频繁更新数据的场景。...
rsync和inotify是Linux系统中的两个重要工具,它们在数据同步和监控文件系统变化方面发挥着关键作用。本文将详细介绍这两个工具以及如何结合使用它们实现实时同步。 **rsync** 是一个强大的、高效的文件同步工具,...
rsync+inotify开机自启动实时同步增量备份是通过使用rsync与inotify结合来实现Linux系统中文件的实时同步和增量备份。rsync是一个快速且灵活的文件传输工具,而inotify则是一个内核特性,它可以监控文件系统的变化。...
本文将详细探讨如何使用rsync结合inotify工具实现高效、实时的异地文件数据同步。 rsync是一款强大的文件同步工具,它能快速地比较并同步本地或远程文件,支持增量传输,从而节省网络带宽。rsync的核心特性包括: ...
而 inotify 是 Linux 内核提供的一种文件系统事件监控机制,可以从文件系统级别的细粒度事件(如创建、删除、修改、移动等)出发,触发 rsync 的同步操作,从而避免了传统 crond 定时任务可能导致的效率低下和实时性...
rsync+inotify实现远程文件时时同步,实现多台服务器的文件同步
**rsync** 是一款用于数据同步的强大工具,它通过高效的算法来减少数据传输量,非常适合远程数据同步和备份。 - **主要特点**: - **增量同步**:仅传输文件差异部分,极大减少了网络带宽消耗。 - **支持多种协议...
《服务器目录实时同步部署手册——基于rsync与inotify》 在现代的IT环境中,保持数据的一致性和可用性至关重要。对于多服务器架构,实时文件同步成为了一个必要且高效的解决方案。本文将详细介绍如何利用rsync和...
rsync 和 inotify 的结合可以实时监控文件系统中的变化,并将变化同步到备份服务器中。 七、结论 rsync 是一个功能强大且灵活的文件同步工具,通过 rsync 和 inotify 的结合,可以实现数据的实时备份,提高数据...
本文将详细介绍如何使用 `rsync`、`inotify-tools` 和 `SSH` 来实现触发式的远程实时同步。 #### 二、基础知识简介 1. **rsync**:一个快速的数据传输工具,支持本地文件复制以及远程文件复制。它通过比较源文件和...