`
113.com
  • 浏览: 80117 次
  • 来自: 广州
社区版块
存档分类
最新评论

rsync 远程数据同步工具详解

 
阅读更多

rysnc(remote synchronize)在CentOS系统默认安装在/usr/bin,此外rysnc在windows平台下也有相应版本。主页地址为: http://rsync.samba.org/

 

rsync(remote synchronize)是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件。rsync使用所谓的“rsync算法”来使本地和远 程两个主机之间的文件达到同步,这个算法只传送两个文件的不同部分,而不是每次都整份传送,因此速度相当快。

 


rsync本来是用于替代rcp的一个工具,目前由rsync.samba.org维护,所以rsync.conf文件的格式类似于samba的主配 置文件。rsync可以通过rsh或ssh使用,也能以daemon模式去运行,在以daemon方式运行时rsync server会打开一个873端口,等待客户端去连接。连接时,rsync server会检查口令是否相符,若通过口令查核,则可以开始进行文件传输。第一次连通完成时,会把整份文件传输一次,以后则就只需进行增量备份。

 

------------------------------------------------------------------------------------------------------------------------------------------------------------

 

 

rsync的命令格式可以为以下六种: 

  rsync [OPTION]... SRC DEST
  rsync [OPTION]... SRC [USER@]HOST:DEST
  rsync [OPTION]... [USER@]HOST:SRC DEST
  rsync [OPTION]... [USER@]HOST::SRC DEST
  rsync [OPTION]... SRC [USER@]HOST::DEST
  rsync [OPTION]... rsync://[USER@]HOST[:PORT]/SRC [DEST]
 

  对应于以上六种命令格式,rsync有六种不同的工作模式:

  1、拷贝本地文件。当SRC和DES路径信息都不包含有单个冒号":"分隔符时就启动这种工作模式。如:rsync -a /data /backup
  2、使用一个远程shell程序(如rsh、ssh)来实现将本地机器的内容拷贝到远程机器。当DST路径地址包含单个冒号":"分隔符时启动该模式。如:rsync -avz *.c foo:src
  3、使用一个远程shell程序(如rsh、ssh)来实现将远程机器的内容拷贝到本地机器。当SRC地址路径包含单个冒号":"分隔符时启动该模式。如:rsync -avz foo:src/bar /data
  4、从远程rsync服务器中拷贝文件到本地机。当SRC路径信息包含"::"分隔符时启动该模式。如:rsync -av root@172.16.78.192::www /databack
  5、从本地机器拷贝文件到远程rsync服务器中。当DST路径信息包含"::"分隔符时启动该模式。如:rsync -av /databack root@172.16.78.192::www
  6、列远程机的文件列表。这类似于rsync传输,不过只要在命令中省略掉本地机信息即可。如:rsync -v rsync://172.16.78.192/www

 

rsync 命令常用参数 
-a 递归方式传输文件,并保持文件属性,等价-rlptgoD不包含-H 

-r 子目录以递归模式处理
-l 保持符号链接文件
-H 保持硬链接文件
-p 保持文件权限
-t 保持文件时间信息
-g 保持文件归属组信息
-o 保持文件归属用户信息
-D 保持设备文件和特殊文件
-z 在传输文件时进行压缩处理
--exclude=PATTERN 指定排除一个不需要传输文件匹配模式
--exclude-from=FILE 从FILE中读取排除规则
--include=PATTERN 指定需要传输的文件匹配模式
--include-from=FILE 从FILE中读取匹配规则
--copy-unsafe-links 复制指向复制源路径目录以外的链接文件
--safe-links 忽略指向复制源路径目录以外的链接文件(默认)
--existing 仅更新那些已经存在于接收端的文件,而不复制新创建文件
--ignore-existing 忽略那些已经存在于接收端的文件,只复制新创建文件
-b 当有变化时,对目标目录中的旧文件进行备份
--backup-dir=DIR 与-b结合使用,指定备份路径
--link-dest=DIR 当文件未改变时在指定路径创建硬链接文件
--delete 删除接收端还存在而保存端不存在的文件
--delete-before 接收端在传输之前进行删除操作(默认)
--delete-during 接收端在传输过程中进行删除操作
--delete-after 接收端在传输之后进行删除操作
--delete-excluded 接收端在传输同时进行删除操作
--e,--rsh=COMMAND 指定代替rsh的shell程序,例如可以指定为ssh
--ignore-erros 即使出现I/O错误也要进行删除
--partial 保留因故没有完全传输的文件,以加快随后的再次传输
--progress 在传输时显示传输过程
-p 等价于—partial—progress
--delay-updates 将正在更新的文件先保存到.~tmp~临时目录,待传输完毕再更新目标文件
-v,--verbose 详细输出模式
-q,--quiet 精简输出模式
-h,--human-readable 输出文件大小
-n,--dry-run 显示那些文件将要被传输
--list-only 仅列出文件而不进行复制
--rsync-path=PROGRAM 指定远程服务器上的rsync命令所在路径
--password-file=FILE 指定从FILE中读取口令,避免在终端中输入口令
-4,-6 使用IPv4或者IPv6
--version 打印版本信息
--help 显示帮组信息

 

 

注意: 若用普通用户身份运行rsync命令,同步后的文件的属主将改变为这个普通用户身份;若用超级用户身份运行rsync命令同步后文件属性保持原来用户身份不变。若指定-tg但目标计算机没有指定用户和组,则复制的文件归入501用户 501组

 

------------------------------------------------------------------------------------------------------------------------------------------------------------

 

启动 rsync 服务 
启动 rsync 服务
 

vi /etc/xinetd.d/rsync  把disable = YES改成NO
service rsync
{
        disable = no
        socket_type     = stream
        wait            = no
        user            = root
        server          = /usr/bin/rsync
        server_args     = --daemon
        log_on_failure  += USERID
}

 

 

 

 

 

配置服务端 rsync 
rsync 服务器可以独立运行也可以由xinetd运行,CentOS默认以xinetd运行,同时默认监听873端口。需要创建rsync配置文件 vi /etc/rsyncd.conf
在文件中[module]之外的所有配置行都是全局参数,也可以在全局参数部分定义模块参数,模块参数主要功能定义哪个目录要被同步,可以根据需要来定义多个模块
 uid = root 
gid = root 
max connections = 10
use chroot = no 
log file = /var/log/rsyncd.log 
pid file = /var/run/rsyncd.pid 
lock file = /var/run/rsyncd.lock 

[tongbu] 
path = /opt/tongbu 
comment = hello world 
ignore errors = yes 
read only = no 
hosts allow = 192.168.1.125 
hosts deny = *

(可以匿名连接,不安全,详细参考以下)

启动并设置随系统启动 rsync,要求 服务端和客户端都启动 ,否则使用的时候报错Connection refused

 

 

rsync --daemon –-config=/etc/rsyncd.conf 
chkconfig rsync on

 

 

 

------------------------------------------------------------------------------------------------------------------------------------------------------------

 

全局参数 
address 指定的服务器运行的IP地址。由xinetd运行时将忽略此参数
port 指定rsync守护进程监听端口号(默认873)。由xinetd运行时将忽略此参数
motd file 指定一个消息文件,当客户连接服务器时该文件内容将显示给客户
pid file rsync的守护进程将其PID写入指定的文件
log file 指定守护进程的日志文件,而不将日志发给syslog
syslog facility 指定发送日志消息给syslog时的消息级别
socket options 自定义tcp选项
 

基本模块参数 
path 指定当前模块在rsync服务器上的同步路径,必须指定
comment 给模块指定一个描述

控制模块参数
use 默认为true,传输文件之前先chroot到path参数所指定的目录下,这样做实现额外的安全防护,但缺点需要root权限,并且不能备份指向path外部的符号链接所指向的目录文件
uid 制定该模块已指定的UID传输文件
gid 指定该模块已指定的GID文件
max connections 限制最大连接并发数以保护服务器,超过限制则提示稍后操作
lock file 指定支持max connections参数的锁文件,默认/etc/run/rsyncd.lock
list 指定当客户请求列出可以使用的模块列表时(默认ture),该模块是否被列出。如果false,可以创建隐藏的模块
read only 是否也许客户上传文件,默认ture则不也许上传。为false并且服务器目录具有读写权限则允许上传
write only 是否也许客户上传文件,默认ture则不也许下载。为false并且服务器目录具有读写权限则允许下载
ignore errors 指定rsync服务器在运行delete操作时是否忽略I/O错误
ignore nonreadable 指定rysnc服务器忽略那些没有访问文件权限的用户
timeout 设定连接超时时间,单位为秒
dont compress 告诉rysnc那些文件在传输前不用压缩,默认已设定压缩包不再进行压缩
refuse options 定义一些不允许客户对该模块使用的命令选项列表

文件筛选模块参数 
exclude 指定排除的多个文件或目录,由空格隔开
exclude from 从指定文件中读取排除规则
include 指定包含复制多个文件或者目录,由空格隔开
include from 从指定文件中读取包含规则

用户认证模块参数 
auth users 指定用户才允许连接该模块
secrets file 指定一个口令认证文件,格式是 用户:密码,即指定用户和密码连接匹配才行,不匹配的话会提示ERROR: auth failed on module,不设置该参数则可以匿名连接。 
strict modes 指定是否检测口令文件权限。rsync认证口令文件权限一定是600

访问控制参数 
hosts allow 指定哪些IP可以访问该模块
hosts deny 指定哪些IP不可以访问该模块,*表示全部

 

分享到:
评论

相关推荐

    inotify+rsync实时远程同步包

    《inotify+rsync实时远程同步技术详解》 在现代的IT环境中,数据同步是至关重要的任务,特别是在分布式系统和多服务器配置中。"inotify+rsync实时远程同步包"便是解决这一问题的一种高效方案,它在SERVICE05等服务...

    rsync ssh 数据同步分析

    rsync是一种用于文件同步和备份的强大的工具,它支持本地以及远程数据的复制,且能够以增量的方式同步数据,只复制变化的文件部分。通过使用SSH(Secure Shell)协议,rsync可以实现数据在两台计算机之间的加密传输...

    Rsync命令参数详解

    Rsync 命令是一种功能强大的工具,用于实现文件的同步和备份。下面对 Rsync 命令的参数进行详细解释。 1. 命令格式 Rsync 命令的格式可以分为六种: * rsync [OPTION]... SRC DEST * rsync [OPTION]... SRC [USER...

    Rsync实现文件备份同步

    Rsync(Remote Sync)是一种高效、功能强大的文件同步工具,常用于实现本地或远程文件的备份与同步。本文将深入探讨Rsync的工作原理、主要特点以及如何使用它来构建一个可靠的文件备份同步系统。 ### 1. Rsync概述 ...

    rsync 数据同步使用详解

    ### rsync远程同步 - 使用`user@host::module`格式指定远程主机和模块。 - 当未配置`rsync`守护进程时,可以通过`-e ssh`参数使用SSH连接。 - `rsync`同步时,注意末尾的`/`。不加`/`会同步整个目录(包括目录本身...

    Rsync详解及liunx和windows下的配置

    Rsync 是一个远程数据同步工具,通过 LAN/WAN 快速同步多台主机间的文件。Rsync 使用所谓的“Rsync 算法”来使本地和远程两个主机之间的文件达到同步,这个算法只传送两个文件的不同部分,而不是每次都整份传送,...

    介绍rsync数据同步、inotify实时同步;实现linux、windows的备份管理

    **rsync**(Remote Sync)是一款高效且强大的数据同步工具,广泛应用于Linux系统中的数据镜像备份。除了支持本地复制外,它还能与其他SSH或rsync主机进行同步。随着技术的发展,rsync已扩展至支持跨平台应用,包括...

    Windows下的同步工具cwRsync,rsync

    - 远程同步:`rsync -avz user@remote_host:/source /local/destination`,通过SSH连接到远程主机进行同步。 8. **注意事项**:在使用cwRsync时,确保了解其所有参数和选项,以免误操作导致数据丢失。同时,由于...

    实用RSYNC服务同步文件

    在信息技术领域,数据的备份与同步是至关重要的环节,RSYNC(Remote Sync)作为一个高效、强大的文件同步工具,因其便捷性和灵活性,被广泛应用于服务器之间的数据同步。本文将深入探讨RSYNC服务的原理、配置及应用...

    windows远程同步工具(服务端和客户端)

    【标题】:Windows远程同步工具——csRsync详解 【描述】:在Windows环境中,进行跨平台文件同步是一项常见的需求,特别是在系统维护、备份和协作过程中。csRsync是一款强大的远程同步工具,它允许用户在Windows与...

    ssh 使用rsync 工具

    ### SSH使用rsync工具详解 #### 一、引言 在IT运维管理中,文件同步是一项常见的需求。尤其是在处理大型目录结构时,如何高效、安全地进行数据同步变得尤为重要。`rsync`作为一种强大的文件同步工具,结合SSH协议...

    Step by Step CentOS 7系统下Rsync+Sersync实时数据同步配置

    #### Rsync同步工具介绍 Rsync(Remote Sync)是一个快速且灵活的文件传输工具,它可以用来同步文件和目录,从一个主机复制到另一台主机。Rsync支持增量备份,仅复制变更部分,大大节省了同步过程中的时间和带宽。 ...

    两台linux服务器目录实时同步(Rsync+Inotify)

    ### 实时同步技术详解:利用Rsync与Inotify在Linux环境下构建高效同步方案 #### 一、概述 在现代IT环境中,数据同步是一项至关重要的任务,尤其是在多服务器架构下,保持数据的一致性和实时性对于业务连续性至关...

Global site tag (gtag.js) - Google Analytics