基于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实现服务器之间文件实时同步,内包含部署所需jar包和配置文件
rsync+inotify实现服务器之间目录文件实时同步
rsync+inotify实现服务器之间文件实时+双向同步,里面有完整的操作步骤、linux命令以及注意事项
rsync+inotify实现远程文件时时同步,实现多台服务器的文件同步
rsync+inotify实现在Linux系统下的数据在不同的服务器之间实时同步,screen命令实现后台自动运行。
rsync inotify-tools ssh实现触发式远程实时同步,两台服务器文件同步
介绍了rsync同步工具和inotify实时更新检测工具以及如何在2台linux服务器上进行对某一目录进行实时同步(一旦一台服务器上的内容有修改,自动同步到另一台上)。
同步方案:采用inotify监听文件变化,触发rsync实时同步,并且用supervisor监控inotify进程,莫明死掉后会立即重新启动。 需求:adminweb上的/data/www/user下的代码要同步到web1\2\3上 172.40.0.203:web1 172.40.0...
Rsync+sersync+inotify-tools
使用 inotify-tools 和rsync 实现文件多服务器自动实时同步脚本 shell,结合网络资料整理和加强,实际使用中。
rsync+inotify实现服务器之间文件实时同步的两个资源包 rsync3.0.9+inotify-tools3.1.14
主要介绍了rsync+inotify实现服务器之间文件实时同步,需要的朋友可以参考下
rsync 是同步服务的一个服务软件 而inotify是一个文件监控服务 随时监控 随时同步到其他服务器上 保证服务器正常同步运行
要利用监控服务(inotify),监控同步数据服务器目录中信息的变化 发现目录中数据产生变化,就利用rsync服务推送到备份服务器上 1.2 实现实时同步的方法 inotify+rsync 方式实现数据同步 sersync 方式实现实时数据...
使用多个web服务器实现负载均衡,为了保持前端web服务器上资源的一致性可以通过rsync在主服务器上(可写入数据)将更新过的文件同步到其他从服务器(只读服务器),但是不能自动的进行实时同步,使用inotify可以实现实时...
通过两台Linux服务器实现文件实时同步,按照文件操作应该99.99%能实现。跟网上查询的相关资料相比,遇到的坑以及问题处理方式都有简单的说明。 ps: 特别注意,文档中的操作系统为CentOS,如果是 RedHat Linux 无法...
客户端的备份文件要和服务器端的备份文件保持实时同步。 例如: 服务端 IP:192.168.2.10 客户端 IP:192.168.2.11,192.168.2.12,…,192.168.2.18 二、服务端开启rsync服务 1.CentOS7操作系统安装完成后,会有自带的...
主要介绍了Linux 通过Rsync+Inotify实现本、异地远程数据实时同步功能,需要的朋友可以参考下
rsync+inotify实现服务器之间文件实时同步