centos6.5中搭建rsync实时文件同步
2018-01-31 13:22
537 查看
成功的必要条件:关闭selinux、开启873端口。
今天部署一下两台服务器的文件同步,ip分别是192.168.2.16和192.168.2.17。想搭建称双向实时同步,先使用rsync+Inotify-tools来实现,它的默认端口是873,我们需要再防火墙中配置一下,如果需要同步的服务器开启selinux,会同步不过去,我们先关闭一下
先都安装rsync,一般centos中会自带rsync,如果没有yum安装一下:
然后创建一下上面配置的认证密码文件
rsync -avH –port=873 –progress –delete /backup/ root@192.168.2.17::test –password-file=/etc/rsyncd.pass
这样就可以同步了,但是我们需要进行实时同步,所以还要安装一个工具:Inotify-tools,先查看一下内核支持不支持:
需要修改上面参数的话:
然后
好,开始下载安装包:
今天部署一下两台服务器的文件同步,ip分别是192.168.2.16和192.168.2.17。想搭建称双向实时同步,先使用rsync+Inotify-tools来实现,它的默认端口是873,我们需要再防火墙中配置一下,如果需要同步的服务器开启selinux,会同步不过去,我们先关闭一下
setenforce 0。
先都安装rsync,一般centos中会自带rsync,如果没有yum安装一下:
yum -y install rsync再安装一下管理工具:
yum -y install xinetd,启动命令为:
/etc/init.d/xinetd start重启为:
/etc/init.d/xinetd restart。再设置一下rsync的开机自启动:
vi /etc/xinetd.d/rsync改变其中的disable为
disable = no保存退出。然后需要创建一下rsync的配置文件,
vi /etc/rsyncd.conf:
port = 873 #运行时占用的端口 uid = root #以什么用户运行 gid = root use chroot = no #默认为yes,修改为no,增加对目录文件软连接的备份 read only = no #设置rsync服务端文件为读写权限 hosts allow=192.168.2.17 #允许进行数据同步的客户端IP地址,可以设置多个,用英文状态下逗号隔开 hosts deny=* #禁止进行连接数据同步的ip max connections = 10 #最大连接数 motd file = /etc/rsyncd.motd #rsync启动时欢迎信息页面文件位置(文件内容自定义) lock file=/var/run/rsyncd.lock #支持max connections参数的锁文件 log file=/var/log/rsyncd.log #rsync的日志路径 pid file = /var/run/rsyncd.pid log format = %t %a %m %f %b syslog facility = local3 timeout = 300 #超时时间 [test] #模块名称可以设置多个 list=no #不显示rsync服务端资源列表 comment = test #和模块名称相同 path = /backup #通步过来的数据路径 ignore errors auth users = root #连接时需要的用户名 secrets file = /etc/rsyncd.secrets #设置一下认证用户名和密码
然后创建一下上面配置的认证密码文件
vi /etc/rsyncd.secrets:输入
root:test然后
chmod 600 /etc/rsyncd.secrets两台服务器都安装好后,可以输入命令测试一下,在16的/backup目录下创建几个文件,然后输入命令:
rsync -avH --port=873 --progress --delete /backup/ root@192.168.2.17::test然后输入在17上面配置的密码:
test就可以同步成功了,如果我们不想每次都输入密码可以再创建一个密码文件
vi /etc/rsyncd.pass输入:
test我们必须设置为只有自己才能进行读写才可以让它生效
chmod 600 /etc/rsyncd.pass。然后就可以用这个命令免密码操作了:
rsync -avH –port=873 –progress –delete /backup/ root@192.168.2.17::test –password-file=/etc/rsyncd.pass
这样就可以同步了,但是我们需要进行实时同步,所以还要安装一个工具:Inotify-tools,先查看一下内核支持不支持:
ll /proc/sys/fs/inotify
-rw-r--r-- 1 root root 0 1月 31 12:11 max_queued_events #inotify队列最大长度,如果值太小,会出现"** Event Queue Overflow **"错误,导致监控文件不准确 查看具体数值命令sysctl -a | grep max_queued_events -rw-r--r-- 1 root root 0 1月 31 12:11 max_user_instances #要同步的文件包含多少目录,可以用命令来统计find /backup -type d | wc -l 查看具体数值命令sysctl -a | grep max_user_watches -rw-r--r-- 1 root root 0 1月 31 12:11 max_user_watches #每个用户创建inotify实例最大值 查看具体数值命令sysctl -a | grep max_user_instances
需要修改上面参数的话:
sysctl -w fs.inotify.max_queued_events="99999999" sysctl -w fs.inotify.max_user_watches="99999999" sysctl -w fs.inotify.max_user_instances="65535"
然后
vi /etc/sysctl.conf添加以下代码保存退出
fs.inotify.max_queued_events=99999999 fs.inotify.max_user_watches=99999999 fs.inotify.max_user_instances=65535
好,开始下载安装包:
wget http://github.com/downloads/rvoicilas/inotify-tools/inotify-tools-3.14.tar.gz[/code] 然后解压进入到目录配置:./configure --prefix=/usr/local/inotify再进行安装:make&&make install
安装好就需要编辑一个后台运行脚本来进行数据监测了:vi /usr/local/inotify/bin/rsync.sh#!/bin/sh srcdir=/backup/ dstdir=test excludedir=/backup/ rsyncuser=root rsyncpassdir=/etc/rsyncd.pass dstip="192.168.2.17" for ip in $dstip do rsync -avH --port=873 --progress --delete --exclude-from=$excludedir $srcdir $rsyncuser@$ip::$dstdir --password-file=$rsyncpassdir done /usr/local/inotify/bin/inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f%e' -e close_write,modify,delete,create,attrib,move $srcdir | while read file do for ip in $dstip do rsync -avH --port=873 --progress --delete --exclude-from=$excludedir $srcdir $rsyncuser@$ip::$dstdir --password-file=$rsyncpassdir echo " ${file} was rsynced" >> /var/log/rsync.log 2>&1 done done
然后赋予执行权限,执行:/usr/local/inotify/bin/rsync.sh &,j将这条命令写入rc.local中。这种方案就配置完成了。不过这种双向模式有个缺点,就是当一台服务器挂掉后,在另一台服务器上删除同步的文件后,等挂掉的服务器启动后,这个文件可能还会同步过来。
相关文章推荐
- Centos 6.5 rsync+inotify 两台服务器文件实时同步
- centos6.5 rsync+inotify实现服务器之间文件实时同步
- centos6.5 rsync+inotify实现服务器之间文件实时同步
- Centos 6.5 rsync+inotify 两台服务器文件实时同步
- CentOS6.4_64位下搭建Rsync+Inotify实现实时同步
- [sersync+rsync] centos6.5 远程文件同步部署记录
- CentOS 7.2 部署Rsync + Lsyncd服务实现文件实时同步/备份 (二)
- [sersync+rsync] centos6.5 远程文件同步部署
- [sersync+rsync] centos6.5 远程文件同步部署记录
- CentOS 7.2 部署Rsync + Lsyncd服务实现文件实时同步/备份 (一)
- rsync+inotify搭建实时同步文件
- CentOS6.5环境下使用rsync增量同步备份文件的方法
- CentOS 6.5 inotify+rsync做实时同步-企业实例(1.0)
- CentOS 6.5 rsync+inotify实现数据实时同步备份
- CentOS 6.5 rsync+inotify实现数据实时同步备份
- CentOS 5.4 rsync+inotify配置触发式(实时)文件远程同步
- Centos 的inotify和rsync文件实时同步
- CentOS7 Rsync服务搭建-Rsync+Inotify架构实现实时同步
- Centos6.5下的rsync+inotify远程实时文件同步服务搭建
- CentOS 7.2 部署Rsync + Lsyncd服务实现文件实时同步/备份 (三)