rsync , rsync + ssh, rsync + lsyncd 多种同步方案与比较

1. 利用 ssh+rsync
只需要在服务器端打开 ssh 服务, 并启动 xinetd 中 rsync 服务则可使用
a. 增量同步
  rsync -av /src-dir/.  [email protected]:/dest-dir/.
b. 镜像同步
  rsync -av --delete /src-dir/.  [email protected]:/dest-dir/.
特点: 配置简单, 不需要配置 rsyncd.conf 配置文件, 但需要在同步过程中进行用户认证
注: 利用 expact + gzipexe 可以创建自动同步加密脚本
使用: 可手动同步或每天晚上定制时间任务同步
缺点:无法实现实时同步, 不可以成为双机热备份方案么

2. 启用 rsync 服务
需要配置 /etc/rsyncd.conf 配置文件, 需要启动 xinetd 中 rsync 服务, 可以不通过 sshd 协调
a. 配置文件 (参考  man 5 rsyncd.conf , 目录共享管理参考 smb.conf)

rsyncd.conf 参考
motd file = true     # 时间记录
pid file = /var/run/rsyncd.pid
port = 873
address = 0.0.0.0
log file = /var/log/rsyncd.log  # rsync 独立日志, 记录每个文件更新信息
syslog facility = syslog   # 增加同步启动与结束信息到 /var/log/messages 仲
uid = nobody      # 注: 定义同步时 rsync 进程用户 id
gid = nobody
use chroot = no

[share]
path=/tmp/test
read only=false

rsyncd.conf 配置安全信息:
charset 用于设定字符集, 可用字符集参考 smb.conf 标准
max connections 并发连接数量
read only  读写控制
write only 读写控制
list  是否允许客户端利用  rsync --list-only rsync://192.168.1.11:873 查询共享目录信息
注: rsync --list-only rsync://192.168.1.11:873/share/. 能够列出文件信息, 与 list 参数无关
exclude 同步过程中忽略某个文件或目录 ex: = new/ old/ kdump.conf (注:只需要相对路径)
exclude from = /etc/rsyncd.list 以文件记录同步过程忽略信息
incoming chmod 文件目录权限定义
outgoing chmod 文件目录权限定义
auth users 配合 secrets file 使用, 定义用户认证(明文) = user1 user2 user3
secrets file = filepath 验证文件 语法 user:password (必须包含上述user123) 文件 root 600 属性
hosts allow 主机 IP 定义
hosts deny 主机 IP 定义
log format 默认格式 %o %h [%a] %m (%u) %f %l 参考 rsyncd.conf

常见同步语法
rsync --list-only rsync://192.168.1.11:873/share/. 能够列出文件信息
rsync --list-only rsync://192.168.1.11:873 查询共享目录信息
rsync --exclude-from=file.txt rsync://192.168.1.11:873/share/.  /tmp/test/. 不同步指定信息

优点: 避免显示主机文件信息绝对路径, 多种安全设定, 不需要利用ssh 进行用户验证, 支持匿名同步
缺点: 无法主动推送文件

3. rsync+lsyncd 数据同步

[rsync server ]  <------     [ lsyncd ]    --->  [ rsync server ]

rsync 客户端需要编译 lsyncd 软件,安装 rsync 工具
rsync 服务器需要配置并启动 rsync 进程, 如上例子, 匿名共享 share 目录

下载最新版
http://lsyncd.googlecode.com/files/lsyncd-2.0.5.tar.gz
依赖: lua >= 5.1.3, rhel6 补丁
ftp://ftp.pbone.net/mirror/ftp.scientificlinux.org/linux/scientific/6rolling/i386/os/Packages/lua-devel-5.1.4-4.1.el6.i686.rpm

语法需调用 LUA 格式

创建配置文件 share.lua

settings = { 
.. 略
nodaemon   = true,    # false 成为前台进程, 方便测试
statusInterval = 3,    # lsyncd.status 状态更新时间间隔
...略
}

sync{
..  略
}

bash = {    
... 略
}

settings 为主配置, sync 为同步配置, bash 为同步方案

启动方法
lsyncd  share.lua

初次启动则会自动同步文件内容, 后发生文件修改, 增加, 删除都会进行自动同步
如果需要对多台电脑进行同步, 可以利用 lsyncd  backup.lua 等脚本多次进行进程启动

方案优点:
  1. 自动对目录中文件向 rsync 服务器进行推送
  2. 能够支持多台 rsync 服务器
  3. 避免人工参与修改
缺点:
  同步时间非实时, 约莫具有30秒延时
  不建议采用大文件进行同步

时间: 2024-11-09 05:11:07

rsync , rsync + ssh, rsync + lsyncd 多种同步方案与比较的相关文章

rsync安装与配置使用 数据同步方案(centos6.5)

rsync + crond   ==定时数据同步 sersync(inotify)  + rsync  ==实时数据同步,利用rsync实现 ##应用场景 ..1 主备服务器之间同步数据定时    ==配合crond sersync inotify等实现 ##rsync的安装配置与使用 服务端 ..1 安装 centos6.5已经安装了rsync rpm -qa | grep rsync 如果没有,用下面两种方式之一安装 yum install rsync rpm -ivh rsyn.xxxxx

使用rsync+inotify-tools+ssh实现文件实时同步

在某些服务器架构中,会遇到文件同步问题,例如需要做站点镜像备份,同步文件到多个CDN节点等.需要解决的主要有两个问题 1.如何实现文件同步问题? 2.何时执行同步操作? 文件同步可以使用rsync+ssh,什么时候自行同步操作呢?可能部分人会想到cron,这个没错,可以实现的,但是确实有点浪费资源,因为cron并不知道文件是否被修改过,只是不停的周期性的执行,如果文件修改后再执行同步操作,不修改就不执行那应该比较好,其实inotify就可以做到,只要你的服务器不是古董级别的,就支持inotify

rsync+inotify+ssh远程实时增量同步

一.准备工作 -主服务器: Rsync,发起端 Inotify Ssh IP:192.168.10.128 -备份服务器 ssh,备份端 IP:192.168.10.129 二.部署过程 1.备份端建立上传用户,并设置权限 -创建用户 [[email protected] ~]# useradd rput [[email protected] ~]# passwd rput -为同步目录设置访问权限 [[email protected] ~]# chown -R rput:rput/var/ww

企业实时同步方案----Rsync+Sersync

在博文企业实时同步方案----Sersync介绍中我们详细介绍了Sersync的原理,设计架构以及和 Inotify 等等的优势区别.这里我就带大家一起来做一下 Rsync +Sersync 这个同步分发架构案例. 实验环境介绍: 内核版本:2.6.32-431.el6.x86_64 系统采用最小化安装,系统经过了基本优化,selinux为关闭状态,iptables为无限制模式 源码包存放位置:/root Rsync客户端+Sersync服务器(SERSYNC),承担角色MASTER,IP:17

通过rsync+inotify-tools+ssh实现触发式远程实时同步

文件的同步镜像在很多地方都需要用到,因此rsync这款免费软件得到了广泛的应用,包括在Windows平台上,都已经有了支持rsync的"cwRsyncServer".但是,我们一般都是通过结合crontab计划任务来实现文件同步的,这样做的缺点是效率低,不能做到实时同步.现在,在Linux平台下我们可以利用2.6内核的inotify监控文件系统机制,通过inotify-tools来实现实时同步了.具体操作如下: 1.安装所需软件目前各大Linux发行版本都已经具有了rsync与inot

10.28 rsync工具介绍 - 10.29/10.30 rsync常用选项 - 10.31 rsync通过ssh同步

- 10.28 rsync工具介绍 - 10.29/10.30 rsync常用选项 - 10.31 rsync通过ssh同步 # 10.28 rsync工具介绍 -/A目录 --> /B目录(A目录更新了一个文件,每次更新都需要把A目录拷贝到B目录),如果用cp命令 比较浪费时间,耗费磁盘空间,磁盘压力 读写之类的, -使用rsync -av /etc/passwd /tmp/1.txt -a选项就是包含了好几个选项  ,v 是可视化,可以看到拷贝的过程 ``` [[email protecte

线上服务器应用--文件同步方案Rsync+sersync

前言: 需求:3台服务器,其中1主2备,实现主服务器实时推送文件至2台备份服务器 一.为什么要用Rsync+sersync架构? 1.sersync是基于Inotify开发的,类似于Inotify-tools的工具 2.sersync可以记录下被监听目录中发生变化的(包括增加.删除.修改)具体某一个文件或某一个目录的名字,然后使用rsync同步的时候,只同步发生变化的这个文件或者这个目录. 二.Rsync+Inotify-tools与Rsync+sersync这两种架构有什么区别? 1.Rsyn

rsync工具的介绍与常用选项,rsync通过ssh同步

rsync工具介绍 一个系统管理员,数据备份是必不可少,在Linux系统下数据备份的工具很多,其中重点介绍就是rsync工具,rsync不仅可以远程同步数据,还可以本地同步数据,且不会覆盖以前的数据在已经存在的数据情况下,而是先判断已经存在的数据和新的数据差异,只有不同的时候才会把不同的部分覆盖. 以下举个例子: [[email protected] ~]# rsync -av /etc/passwd /tmp/1.txtsending incremental file listpasswd s

八周二次课(1月30日) 10.28 rsync工具介绍 10.29/10.30 rsync常用选项 10.31 rsync通过ssh同步

八周二次课(1月30日)10.28 rsync工具介绍10.29/10.30 rsync常用选项10.31 rsync通过ssh同步===================================================================================================================================================================rsync命令:是一个远程数据同步工具,可