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

简介:

1. 利用 ssh+rsync 
只需要在服务器端打开 ssh 服务, 并启动 xinetd 中 rsync 服务则可使用 
a. 增量同步 
  rsync -av /src-dir/.  user@ipadress:/dest-dir/
b. 镜像同步 
  rsync -av --delete /src-dir/.  user@ipadress:/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秒延时 
  不建议采用大文件进行同步



本文转自    geekwolf   51CTO博客,原文链接:http://blog.51cto.com/linuxgeek/997898

相关文章
|
2月前
|
安全 关系型数据库 MySQL
CentOS 7系统加固详细方案SSH FTP MYSQL加固
CentOS 7系统加固详细方案SSH FTP MYSQL加固
|
网络安全
05-rsync与ssh访问流程区别
ssh访问流程 1.首先使用ssh root@172.16.1.41:/backup去请求172.16.1.41服务器的backup目录 2.当请求到达1.41服务器时,去判断/etc/passwd文件是否有root这个用户,如果存在则根据root用户的权限去访问对应的/backup目录 rsync访问流程 1.首先使用rsync -avz rsync_backup@172.16.1.41::backup去请求1.41服务器的backup模块 2.请求到达服务器时,服务器会判断/etc/rsync.password文件验证rsync_backup用户是否存在,如果存在就将虚拟用于程序
136 0
05-rsync与ssh访问流程区别
|
网络安全
04-rsync传输与ssh传输的区别
rsync传输与ssh传输的区别
158 0
04-rsync传输与ssh传输的区别
|
网络协议 网络安全
SSH登录慢解方案 - 关闭USEDNS加速
每次登录SSH时总是要停顿等待一会儿才能连接上,,这是因为OpenSSH服务器有一个DNS查找选项UseDNS默认情况下是打开的。 UseDNS 选项打开状态下,当通过终端登录SSH服务器时,服务器端先根据客户端的IP地址进行DNS PTR反向查询出客户端的主机名,然后根据查询出的客户端主机名进行DNS正向A记录查询,验证与其原始IP地址是否一致,这是防止客户端欺骗的一种措施,但一般我们的是动态IP不会有PTR记录,打开这个选项没什么用,不如关闭。
1204 0
|
Java 数据库连接 网络安全
SSH整合方案一(带有hibernate.cfg.xml)
整体结构 1.导入响应的jar包 2.在web.xml中配置struts的过滤器和spring整合web的监听器 org.springframework.web.
892 0
|
XML Java 网络安全
SSH整合方案二(不带hibernate.cfg.xml)
整体结构: 1.引入相关jar包 2.编写实体类和映射文件 package cn.zqr.domain; public class Customer { private Long cust_id; private String cust_name; priv...
955 0