centos6 rsync+inotify 数据同步

一 前戏
#检测rsync是否已安装
rpm -qa rsync
#如未按装,执行yum安装
yum install -y rsync
#新建用户和目录并授权
useradd -M -s /sbin/nologin  rsync
mkdir /bakcup
chown -R rsync.rsync /bakcup/

二 服务端配置
#打开配置文件,填入以下内容
vi /etc/rsyncd.conf
===================================
#rsyncd.conf_______________start
#指定用户
uid = rsync
gid = rsync
#相当于黑洞 出错定位
use chroot = no
#有多少个客户端同时传文件
max connections = 200
#超时时间
timeout = 300
#进程号文件
pid file = /var/run/rsyncd.pid
#锁文件
lock file = /var/run/rsync.lock
#日志文件
log file = /var/log/rsyncd.log
#模块开始 这个模块对应的是推送目录 模块名称随便起
[backup]
#同步数据目录
path = /backup
#表示出现错误忽略错误
ignore errors
#表示网络权限可写(还需要本地文件权限配合)
read only = false
#这里设置IP或让不让同步
list = false
#指定允许的网段
hosts allow = 192.168.1.0/24
#拒绝链接的地址,一下表示没有拒绝的链接
hosts deny = 0.0.0.0/32
#虚拟用户
auth users = rsync_backup
#虚拟用户的密码文件
secrets file = /etc/rsync.password
#rsync_config_______________end
=================================================
#设置访问密码文件
echo "rsync_backup:younger" >/etc/rsync.password
#为密码文件设置安全权限
chmod 600 /etc/rsync.password
#启动守护进程模式
rsync --daemon

#添加开机自启动

echo ‘rsync --daemon‘ >> /etc/rc.local

三 客户端配置
#检测rsync是否已安装
rpm -qa rsync
#如未按装,执行yum安装
yum install -y rsync
echo "younger" >/etc/rsync.password
#为密码文件设置安全权限
chmod 600 /etc/rsync.password

#添加EPRL源
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo
#安装
yum install inotify-tools -y
#编辑时时监控脚本
vi inotify.sh
===============================================
#!/bin/bash
host=192.168.1.160  #rsync服务端的ip地址
src=/data             #本地监控的目录
dst=backup            #rsync服务的模块名
user=rsync_backup     #rsync服务的虚拟用户
rsync_passfile=/etc/rsync.password   #本地调用rsync服务的密码文件
inotify_home=/usr/           #inotify的安装目录
if [ ! -e "$src" ] \
|| [ ! -e "${rsync_passfile}" ] \
|| [ ! -e "${inotify_home}/bin/inotifywait" ] \
|| [ ! -e "/usr/bin/rsync" ];
then
echo "Check File and Directory"
exit 9
fi
${inotify_home}/bin/inotifywait -mrq --timefmt ‘%d/%m/%y %H:%M‘ --format ‘%T %w%f‘ -e close_write,delete,create,attrib $src \
| while read file
do
#  rsync -avzP --delete --timeout=100 --password-file=${rsync_passfile} $src [email protected]$host::$dst >/dev/null 2>&1
cd $src && rsync -aruz -R --delete ./  --timeout=100 [email protected]$host::$dst --password-file=${rsync_passfile} >/dev/null 2>&1
done
exit 0
===================================================================================

四 测试
#后台执行时时监控脚本
sh inotify.sh &
#在本地/data目录新建文件
mkdir {1..99}

#在服务端/backup下查看同步状态

备注:如若不成功可能出现问题的地方
1 rsyncd.conf  没有d
2 rsync.password 权限非600
3 rsync.password 服务端保存用户名密码  
4 rsync.password 客户端只保存密码
5 目录的路径名称和允许的IP权限
6 防火墙
come on 努力吧

#网友优化每秒200个文件并发,数据同步几乎无延迟(待测)
[[email protected] scripts]# echo "50000000" >/proc/sys/fs/inotify/max_user_watches
[[email protected] scripts]# echo "50000000" >/proc/sys/fs/inotify/max_queued_events

时间: 2024-08-25 18:56:36

centos6 rsync+inotify 数据同步的相关文章

rsync + inotify数据同步

rsync 具有安全性高.备份迅速.支持增量备份等优点,通过 rsync 可以解决对实时性要求不是很高的数据备份需求.如果实时性高的情况下,就会体现出他的不足,虽然可以利用任务计划来触发同步,但还是有一定的时间差,并且 rsync 在同步数据的时候,要遍历整个目录树后进行比对,文件数量达到一定量级的情况下,这是很低效的做法.所以就有了今天的 rsync + inofity . inotify 是一种强大的.细粒度的.异步文件系统时间监控机制,Linux 内核从 2.6.13 起,加入了对inot

Rsync+inotify 数据同步

Rsync工具的使用 -------- rsync 端口873 rsync常用的命令选项: -a:归档模式,相当于递归.保留权限等多个选项的组合 -v:显示同步过程详细信息 -z:传输过程中启用压缩 -A:保留文件的ACL属性信息 -n:测试同步过程,不做实际修改 --delete:删除目标文件夹内多余的文档 --------------------------- 本地同步(命令用法类似cp) rsync -a --delete /date/www/  /data/bak_www/ 远程SSH同

2-3-2 rsync+inotify备份同步数据

RSYNC = Remote Sync 远程同步 高效,一定要结合shell 官网:https://rsync.samba.org Author: Andrew Tridgell, Wayne Davison, and others Andrew Tridgell是Samba项目的领导者和主要开发人员,同时还在参与开发rsync\Linux Kernel. 与SCP的比较:scp=无法备份大量数据,类似windows的复制 rsync=边复制 ,边统计,边比较 Rsync特性和优点 可以镜像保存

rsync+inotify实现同步数据

1.rsync man一下sync,就会发现:sync-flush file system buffers,它是一个把缓冲区中的数据同步到文件系统中的一个命令:而rsync其实就是remote rsync,它是一个远程同步工具,兼具cp和scp的功能,rsync命令的使用几乎和scp是一样一样的.rsync是通过超级守护进程xinetd进行触发同步的. 1)优点:与cp和scp相比来说,rsync更快,更安全,支持增量备份.rsync在数据同步的过程中,不像cp一样全部都拷贝,而是先去比对特征码

rsync+inotify 数据实时同步备份

一.rsync rsync - a fast, versatile, remote (and local) file-copying tool. rsync synopsis: rsync 支持三种传输模式: local    本地 remote shell   (ssh, rsh) rsync daemon rsync连接远程主机进行同步或备份时有两种途径:使用远程shell程序(如ssh或rsh)进行连接,或使用TCP直接连接rsync daemon.    当源路径或目的路径的主机名后面包

CentOS5.8 x86_64下配置rsync+inotify即时同步文件

rsync可以实现触发式的文件同步,但是通过crontab守护进程方式进行触发,同步的数据和实际数据会有差异,而inotify可以监控文件系统的各种变化,当文件有任何变动时,就触发rsync同步,这样就可以解决同步数据的实时性问题.rsync+inotify我在工作中会经常用到,大家部署这种时请注意以下方面: 一.rsync服务器的uid和gid请将nobody:nobody改为www:www,因为是考虑到我们的Nginx服务器是由www:www运行的,而其对应目录很多时候有写日志或其它相关写文

rsync+inotify实时同步环境部署记录

随着应用系统规模的不断扩大,对数据的安全性和可靠性也提出的更好的要求,rsync在高端业务系统中也逐渐暴露出了很多不足.首先,rsync在同步数据时,需要扫描所有文件后进行比对,进行差量传输.如果文件数量达到了百万甚至千万量级,扫描所有文件将是非常耗时的,并且正在发生变化的往往是其中很少的一部分,这是非常低效的方式.其次,rsync不能实时的去监测.同步数据,虽然它可以通过linux守护进程的方式进行触发同步,但是两次触发动作一定会有时间差,这样就导致了服务端和客户端数据可能出现不一致,无法在应

rsync+inotify实时同步案例

rsync+inotify实时同步案例 随着应用系统规模的不断扩大,对数据的安全性和可靠性也提出的更好的要求,rsync在高端业务系统中也逐渐暴露出了很多不足,首先,rsync同步数据时,需要扫描所有文件后进行比对,进行差量传输.如果文件数量达到了百万甚至千万量级,扫描所有文件将是非常耗时的.而且正在发生变化的往往是其中很少的一部分,这是非常低效的方式.其次,rsync不能实时的去监测.同步数据,虽然它可以通过linux守护进程的方式进行触发同步,但是两次触发动作一定会有时间差,这样就导致了服务

rsync远程同步及rsync+inotify实时同步

rsync远程同步及rsync+inotify实时同步 思维代入 正确.有效的备份方案是保障系统及数据安全的重要手段.在服务器中,通常会结合计划性任务.shell脚本来执行本地备份.但有时候为了提高备份的可靠性,异地备份也是非常有必要的.那下面就给大家介绍一种异地远程备份的方法:rsync远程备份. rsync简介 rsync是一个开源的快速备份工具,可以在不同主机之间镜像同步整个目录树,支持增量备份.保持链接和权限,且采用优化的同步算法,在传输前执行压缩,因此非常适用于异地备份.镜像服务等应用