`
tomhibolu
  • 浏览: 1431233 次
文章分类
社区版块
存档分类
最新评论

Rsync文件同步服务器的简介&安装和配置

 
阅读更多

(一)软件简介

Rsync是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件。Rsync本来是用以取代rcp的一个工具,它当前由rsync.samba.org维护。Rsync使用所谓的“Rsync演算法”来使本地和远程两个主机之间的文件达到同步,这个算法只传送两个文件的不同部分,而不是每次都整份传送,因此速度相当快。运行Rsync server的机器也叫backup server,一个Rsync server可同时备份多个client的数据;也可以多个Rsync server备份一个client的数据。
  Rsync可以搭配rsh或ssh甚至使用daemon模式。Rsync server会打开一个873的服务通道(port),等待对方Rsync连接。连接时,Rsync server会检查口令是否相符,若通过口令查核,则可以开始进行文件传输。第一次连通完成时,会把整份文件传输一次,下一次就只传送二个文件之间不同的部份。
  Rsync支持大多数的类Unix系统,无论是Linux、Solaris还是BSD上都经过了良好的测试。此外,它在windows平台下也有相应的版本,比较知名的有cwRsync和Sync2NAS
  Rsync的基本特点如下:
  1.可以镜像保存整个目录树和文件系统
  2.可以很容易做到保持原来文件的权限、时间、软硬链接等;
  3.无须特殊权限即可安装;
  4.优化的流程,文件传输效率高
  5.可以使用rcp、ssh等方式来传输文件,当然也可以通过直接的socket连接
6.支持匿名传输


(二)核心算法

假定在名为α和β的两台计算机之间同步相似的文件A与B,其中α对文件A拥有访问权,β对文件B拥有访问权。并且假定主机α与β之间的网络带宽很小。那么rsync算法将通过下面的五个步骤来完成:
  1.β将文件B分割成一组不重叠的固定大小为S字节的数据块。最后一块可能会比S 小。
  2.β对每一个分割好的数据块执行两种校验:一种是32位的滚动弱校验,另一种是128位的MD4强校验
  3.β将这些校验结果发给α。
  4.α通过搜索文件A的所有大小为S的数据块(偏移量可以任选,不一定非要是S的倍数),来寻找与文件B的某一块有着相同的弱校验码和强校验码的数据块。这项工作可以借助滚动校验的特性很快完成。
  5.α发给β一串指令来生成文件A在β上的备份。这里的每一条指令要么是对文件B经拥有某一个数据块而不须重传的证明,要么是一个数据块,这个数据块肯定是没有与文件B的任何一个数据块匹配上的。

(三)服务端配置
Rsync在RHEL5下是默认安装的,版本为2.6.8-3.1,最新版本可从
http://rsync.samba.org/rsync/获得。

一、配置文件rsyncd.conf

1. 创建配置目录和文件


# 在/etc目录下创建一个rsyncd的目录,我们用来存放rsyncd.conf 和rsyncd.secrets文件
mkdir /etc/rsyncd
# 创建rsyncd.conf ,这是rsync服务器的配置文件
touch /etc/rsyncd/rsyncd.conf

#创建rsyncd.secrets ,这是用户密码文件

touch /etc/rsyncd/rsyncd.secrets

# 为了密码的安全性,我们把权限设为600
chmod 600 /etc/rsyncd/rsyncd.secrets

# 服务器欢迎信息
touch /etc/rsyncd/rsyncd.motd


2. 编辑rsyncd.conf

# This line is required by the /etc/init.d/rsyncd script

pid file = /var/run/rsyncd.pid

lockfile = /var/run/rsyncd.lock

port = 873

address = 192.168.55.229

uid = root

gid = root

use chroot = yes

read only = yes #注意这个用户ID和组ID,如果要方便的话,可以设置成root,这样rsync几乎就可#以读取任何文件和目录了,但是也带来安全隐患。建议设置成只能读取你要备份的目录和文件即可。

#limit access to private LANs

hosts allow=192.168.55.0/255.255.255.0 10.0.55.0/255.255.255.0

hosts deny=*

max connections = 5 # 最大连接数为5

motd file = /etc/rsyncd/rsyncd.motd

#This will give you a separate log file
#log file = /var/log/rsync.log

#This will log every file transferred - up to 85,000+ per user, per sync
#transfer logging = yes
log format = %t %a %m %f %b
syslog facility = local3
timeout = 300

[linuxroot] # 指定认证的备份模块名
path = /# 需要备份的目录

comment = linuxroot   # 注释

ignore errors# 忽略一些无关的IO错误
auth users = root # 认证的用户名,是必须在服务器上存在的真实的系统用户,以,号隔开多个用户;如果没有这行,则表明是匿名

list=yes# 允许列文件

read only = yes    # 设置为只读

hosts allow=220.122.133.31  #允许连接服务器的主机IP地址
secrets file = /etc/rsyncd/rsyncd.secrets # 认证文件名,用来存放密码
exclude = home/#excude 排除的目录列表

3.编辑rsyncd.secrets(用户名:密码)

root:123456

4.启动rsync服务器

/usr/bin/rsync --daemon --config=/etc/rsyncd/rsyncd.conf

# Linux防火墙是用iptables,所以查看防火墙设置

iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 873 -j ACCEPT
查看一下防火墙是不是打开了 873端口;
iptables -L

或者:

修改/etc/xinetd.d/rsync文件,把其中的disable=yes改为disable=no
最后在服务器端我们需要启动rsync服务:
  service xinetd restart


二、同步数据
1. 查看同步数据情况
#rsync rsync://[认证用户]@[主机]/[模块名]
rsync rsync://zy@192.168.55.229/linuxroot

2. 客户端同步数据:

客户端创建认证用户密码文件。可以在同步时不用输入密码,也方便crond计划任务。

# rsync -avzP --progress --delete [认证用户]@[主机名]::[模块名] [目标路径]
su

cd ~

touch rsync.password

chmod 600 rsync.password

echo "123456" > rsync.password

rsync -avzP --progress --delete --password-file=rsync.password root@192.168.55.229::linuxroot /

三, rsync命令

在对rsync服务器配置结束以后,下一步就需要在客户端发出rsync命令来实现将服务器端的文件备份到客户端来。rsync是一个功能非常强大的工具,其命令也有很多功能特色选项,我们下面就对它的选项一一进行分析说明。
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
[email=root@172.16.78.192::www]root@172.16.78.192::www[/email]
/databack
  5)从本地机器拷贝文件到远程rsync服务器中。当DST路径信息包含"::"分隔符时启动该模式。如:rsync -av /databack
[email=root@172.16.78.192::www]root@172.16.78.192::www[/email]
  6)列远程机的文件列表。这类似于rsync传输,不过只要在命令中省略掉本地机信息即可。如:rsync -v rsync://172.16.78.192/www
rsync参数的具体解释如下:
-v, --verbose 详细模式输出
-q, --quiet 精简输出模式
-c, --checksum 打开校验开关,强制对文件传输进行校验
-a, --archive 归档模式,表示以递归方式传输文件,并保持所有文件属性,等于-rlptgoD
-r, --recursive 对子目录以递归模式处理
-R, --relative 使用相对路径信息
-b, --backup 创建备份,也就是对于目的已经存在有同样的文件名时,将老的文件重新命名为~filename。可以使用--suffix选项来指定不同的备份文件前缀
--backup-dir 将备份文件(如~filename)存放在在目录下。
-suffix=SUFFIX 定义备份文件前缀
-u, --update 仅仅进行更新,也就是跳过所有已经存在于DST,并且文件时间晚于要备份的文件。(不覆盖更新的文件)
-l, --links 保留软链结
-L, --copy-links 想对待常规文件一样处理软链结
--copy-unsafe-links 仅仅拷贝指向SRC路径目录树以外的链结
--safe-links 忽略指向SRC路径目录树以外的链结
-H, --hard-links 保留硬链结
-p, --perms 保持文件权限
-o, --owner 保持文件属主信息
-g, --group 保持文件属组信息
-D, --devices 保持设备文件信息
-t, --times 保持文件时间信息
-S, --sparse 对稀疏文件进行特殊处理以节省DST的空间
-n, --dry-run现实哪些文件将被传输
-W, --whole-file 拷贝文件,不进行增量检测
-x, --one-file-system 不要跨越文件系统边界
-B, --block-size=SIZE 检验算法使用的块尺寸,默认是700字节
-e, --rsh=COMMAND 指定使用rsh、ssh方式进行数据同步
--rsync-path=PATH 指定远程服务器上的rsync命令所在路径信息
-C, --cvs-exclude 使用和CVS一样的方法自动忽略文件,用来排除那些不希望传输的文件
--existing 仅仅更新那些已经存在于DST的文件,而不备份那些新创建的文件
--delete 删除那些DST中SRC没有的文件
--delete-excluded 同样删除接收端那些被该选项指定排除的文件
--delete-after 传输结束以后再删除
--ignore-errors 及时出现IO错误也进行删除
--max-delete=NUM 最多删除NUM个文件
--partial 保留那些因故没有完全传输的文件,以是加快随后的再次传输
--force 强制删除目录,即使不为空
--numeric-ids 不将数字的用户和组ID匹配为用户名和组名
--timeout=TIME IP超时时间,单位为秒
-I, --ignore-times 不跳过那些有同样的时间和长度的文件
--size-only 当决定是否要备份文件时,仅仅察看文件大小而不考虑文件时间
--modify-window=NUM 决定文件是否时间相同时使用的时间戳窗口,默认为0
-T --temp-dir=DIR 在DIR中创建临时文件
--compare-dest=DIR 同样比较DIR中的文件来决定是否需要备份
-P 等同于 --partial
--progress 显示备份过程
-z, --compress 对备份的文件在传输时进行压缩处理
--exclude=PATTERN 指定排除不需要传输的文件模式
--include=PATTERN 指定不排除而需要传输的文件模式
--exclude-from=FILE 排除FILE中指定模式的文件
--include-from=FILE 不排除FILE指定模式匹配的文件
--version 打印版本信息
--address 绑定到特定的地址
--config=FILE 指定其他的配置文件,不使用默认的rsyncd.conf文件
--port=PORT 指定其他的rsync服务端口
--blocking-io 对远程shell使用阻塞IO
-stats 给出某些文件的传输状态
--progress 在传输时现实传输过程
--log-format=formAT 指定日志文件格式
--password-file=FILE 从FILE中得到密码
--bwlimit=KBPS 限制I/O带宽,KBytes per second
-h, --help 显示帮助信息

分享到:
评论

相关推荐

    linux 下rsync文件夹同步配置

    ### Linux下rsync文件夹同步配置详解 #### 引言 在Linux环境下,rsync工具因其高效、稳定、灵活的特点...rsync的强大功能与灵活性使其成为处理大规模文件同步的理想选择,尤其适用于服务器之间的数据备份与同步场景。

    rsync+inotify实现服务器之间文件实时同步

    rsync+inotify方案可以实现服务器之间文件的实时同步,保障数据的一致性和实时性,该方案广泛应用于数据备份、文件同步、云存储等领域。 知识点: 1. rsync工具的安装和配置 2. inotify工具的安装和配置 3. 使用...

    rsync 数据同步 实时同步 linux

    rsync是一款功能强大的文件同步工具,适用于各种规模的数据备份和同步需求。通过合理的配置和参数设置,可以极大地提高文件传输的效率和安全性。无论是个人用户还是企业级应用,rsync都能提供出色的性能和支持。

    图解rsync数据同步部署文档.docx

    通过这篇图解 rsync 数据同步部署文档,我们可以了解 rsync 的基本概念、同步算法、Windows 和 Linux 平台下的安装和配置方法,以及详细的文件同步方法说明。学会使用 rsync 工具,可以帮助我们快速、可靠地实现文件...

    linux中rsync异步服务器实现文件同步与备份.docx

    在开始配置Rsync异步服务器之前,需要确保系统已安装Rsync工具。大多数Linux发行版已经将Rsync包含在它们的标准仓库中,可以通过包管理器如apt-get(Debian/Ubuntu)、yum(CentOS/RHEL)等进行安装。 设置SSH公钥...

    rsync+inotify实现linux服务器之间文件实时+双向同步.docx

    rsync+inotify是Linux系统中一种常用的实时文件同步方案,尤其适用于服务器之间的数据备份和同步。rsync是一个高效的数据同步工具,它可以快速地比较并传输文件和目录,而inotify则是Linux内核提供的一种文件系统...

    linux下Rsync+sersync实现文件数据实时同步

    `Rsync`是一个强大的、快速的文件同步和备份工具,它支持本地和远程文件同步。其核心特性包括增量传输、只同步变化的数据、可以选择的压缩选项以及广泛的过滤规则。 1. **增量传输**:Rsync通过比较源文件和目标...

    使用Linux的rsync命令实现多服务器镜像同步.doc

    在 Linux 系统中,rsync 命令是实现文件同步和备份的强大工具。rsync 命令可以实现多服务器镜像同步,使得文件在不同服务器之间保持一致。本文将详细介绍使用 rsync 命令实现多服务器镜像同步的方法。 什么是 rsync...

    rsync+inotify实现服务器之间目录文件实时同步

    **rsync** 是一种高效且广泛使用的文件同步工具,主要用于远程数据备份、镜像和迁移场景。相较于传统的 `cp` 和 `tar` 备份方式,rsync 提供了更高的安全性、更快的速度以及支持增量备份等功能,适用于对实时性要求...

    rsync数据同步手册.pdf

    rsync是一种快速、可靠的文件同步工具,广泛应用于数据备份、同步和复制。下面是关于rsync数据同步手册的知识点总结: 一、系统环境 在开始使用rsync之前,需要了解系统环境的基本配置。包括操作系统、文件系统、...

    Rsync实现文件备份同步

    在企业环境中,Rsync常用于同步服务器间的文件,如图片资源。例如,一家公司可能在多台Web服务器上部署了相同的静态资源,通过Rsync,可以确保所有服务器上的图片资源保持一致,即使源文件发生变化,也能迅速更新到...

    CentOS7配置rsync实现文件同步1

    rsync是一款强大的文件同步工具,它能够高效地在不同服务器之间同步目录和文件,尤其在Linux环境中广泛使用。rsync的特性在于其采用的“rsync算法”,该算法仅传输文件的差异部分,极大地提高了数据同步的效率。下面...

    Week12_Unit11_RSYNC文件同步服务.pdf

    #### 实现RSYNC文件同步服务配置 - **关闭防火墙与SELinux**:为了确保RSYNC服务能够顺利进行,需要关闭系统防火墙和SELinux(安全增强型Linux)。 - **配置YUM源**:安装RSYNC服务前,需要配置一个可用的YUM源,如...

    rsync目录同步配置详解

    rsync目录同步配置详解 本篇文章旨在详细介绍 rsync 目录同步的配置过程,涵盖服务器端和客户端的配置、ssh 远程连接、rsync 服务的...通过正确地配置文件和同步命令,rsync 目录同步可以实现高效、安全的文件同步。

    Windows平台下使用rsync实现文件同步.docx

    Windows 平台下使用 rsync 实现文件同步是通过在服务器端和客户端安装 cwRsync 软件来实现的。cwRsync 是一个基于 rsync 的同步工具,能够实现文件的双向同步。 在服务器端,需要安装 cwRsyncServer,并配置 rsyncd...

    rsync在windows下的安装和配置.docx

    Rsync 是一个功能强大且灵活的文件同步工具,通过在 Windows 下安装和配置 Rsync,用户可以实现文件的快速高效同步。但需要注意的是,在使用 Rsync 时需要正确地配置服务器端和客户端,否则可能会出现同步错误或数据...

    rsync在windows与windows服务器之间的同步设置

    使用 rsync 在 Windows 与 Windows 服务器之间实现文件同步需要准备环境、安装 rsync、配置服务、配置文件、测试服务、同步文件和计划任务等步骤。通过这些步骤,可以实现文件的同步、备份和还原。

    rsync安装与配置-完整版.doc

    在安装rsync之前,需要注意的是必须在主服务器和同步服务器上都安装rsync,其中主服务器上是以服务器模式运行rsync,而同步服务器上则以客户端方式运行rsync。这样在主服务器上运行rsync守护进程,在同步服务器上用...

    rsync安装与配置-完整版

    下面将详细介绍 rsync 的安装、配置和使用方法。 一、 rsync 简介 rsync 是一个基于 Linux 系统的数据镜像备份工具,支持大多数的类 Unix 系统,无论是 Linux、Solaris 还是 BSD 都经过了良好的测试。它的特性包括...

    linux rsync及inotify实时同步

    rsync 是一种快速的本地和远程文件同步工具,能够快速地将源文件同步到目标文件中。rsync 的优点是可以 Only transfer the differences between the source and the destination,减少了带宽的使用。 inotify 概述 ...

Global site tag (gtag.js) - Google Analytics