rsyncconf文件详解(rsync配置文件详解)

http://www.itjxue.com  2023-01-27 03:44  来源:未知  点击次数: 

详解rsync,一款卓越的增量同步工具(一)

Rsync (remote rsync) 是可以实现 增量备份 的远程(和本地)文件复制工具,目的是实现本地主机和远程主机上的文件同步(包括本地推到远程,远程拉到本地两种同步方式),也可以实现本地不同路径下(不同目录、分区之间)文件的同步,但不能实现远程路径1到远程路径2之间的同步(scp可以实现)。配合计划任务,rsync能实现 定时或周期同步 ;配合inotify或sersync,可以实现触发式的 实时同步 。

本篇文章主要介绍rsync的使用方法和它常用的功能。

rsync官方网站:

不考虑rsync的实现细节,就文件同步而言,涉及了源文件和目标文件的概念,还涉及了以哪边文件为同步基准。例如,想让目标主机上的文件和本地文件保持同步,则是以本地文件为同步基准,将本地文件作为源文件推送到目标主机上。反之,如果想让本地主机上的文件和目标主机上的文件保持同步,则目标主机上的文件为同步基准,实现方式是将目标主机上的文件作为源文件拉取到本地。当然,要保持本地的两个文件相互同步,rsync也一样能实现,这就像Linux中cp命令一样,以本地某文件作为源,另一文件作为目标文件,但请注意,虽然rsync和cp能达到相同的目的,但它们的实现方式是不一样的。

既然是文件同步,在同步过程中必然会涉及到源和目标两文件之间版本控制的问题,例如是否要删除源主机上没有但目标上多出来的文件,目标文件比源文件更新(newer than source)时是否仍要保持同步,遇到软链接时是拷贝软链接本身还是拷贝软链接所指向的文件,目标文件已存在时是否要先对其做个备份等等。

rsync同步过程中由两部分模式组成:决定哪些文件需要同步的检查模式以及文件同步时的同步模式。

(1).检查模式是指按照指定规则来检查哪些文件需要被同步,例如哪些文件是明确被排除不传输的。默认情况下,rsync使用"quick check"算法快速检查源文件和目标文件的大小、mtime(修改时间)是否一致,如果不一致则需要传输。当然,也可以通过在rsync命令行中指定某些选项来改变quick check的检查模式,比如"--size-only"选项表示"quick check"将仅检查文件大小不同的文件作为待传输文件。rsync支持非常多的选项,其中检查模式的自定义性是非常有弹性的。

(2).同步模式是指在文件确定要被同步后,在同步过程发生之前要做哪些额外工作。例如上文所说的是否要先删除源主机上没有但目标主机上有的文件,是否要先备份已存在的目标文件,是否要追踪链接文件等额外操作。rsync也提供非常多的选项使得同步模式变得更具弹性。

相对来说,为rsync手动指定同步模式的选项更常见一些,只有在有特殊需求时才指定检查模式,因为大多数检查模式选项都可能会影响rsync的性能。

以下是rsync的语法:

由此语法可知,rsync有三种工作方式:

(1).本地文件系统上实现同步。命令行语法格式为上述"Local"段的格式。

(2).本地主机使用远程shell和远程主机通信。命令行语法格式为上述"Access via remote shell"段的格式。

(3).本地主机通过网络套接字连接远程主机上的rsync daemon。命令行语法格式为上述"Access via rsync daemon"段的格式。

前两者的本质是通过管道通信,即使是远程shell。而方式(3)则是让远程主机上运行rsync服务,使其监听在一个端口上,等待客户端的连接。

但是,还有第四种工作方式:

(4).通过远程shell也能临时启动一个rsync daemon,这不同于方式(3),它不要求远程主机上事先启动rsync服务,而是临时派生出rsync daemon,它是单用途的一次性daemon,仅用于临时读取daemon的配置文件,当此次rsync同步完成,远程shell启动的rsync daemon进程也会自动消逝。此通信方式的命令行语法格式同"Access via rsync daemon",但要求options部分必须明确指定"--rsh"选项或其短选项"-e"。

如需源码安装,请关注即将发布的《详解Rsync,一款卓越的增量同步工具(二)》

系统环境:

服务器配置:阿里云ECS 11G

操作系统:CentOS7.2

rsync 版本:3.1.2

rsync 服务器:rsync-server (10.168.152.72)

rsync 客户端:rsync-client (10.117.217.172)

检查rsync 是否已经安装

若已安装,无需重新安装;若未安装,用以下命令安装:

写入以下配置到该文件:

输入,格式是“用户名:口令”,用户不要求是系统用户

root:pwd123456

输入:

======welcome to synchronize appdata======

如果rsync启动成功,可以看到873端口已经在监听了。

检查rsync 是否已经安装

若已安装,无需重新安装;若未安装,用以下命令安装:

更多同步数据的场景演示,请关注即将发布的《详解Rsync,一款卓越的增量同步工具(二)》

配置文件 rsyncd.conf 由全局配置和若干模块配置组成。配置文件的语法为:

全局参数

在文件中 [module] 之外的所有配置行都是全局参数。当然也可以在全局参数部分定义模块参数,这时该参数的值就是所有模块的默认值。

模块参数

模块参数主要用于定义 rsync 服务器哪个目录要被同步。模块声明的格式必须为 [module] 形式,这个名字就是在 rsync 客户端看到的名字,类似于 Samba 服务器提供的共享名。而服务器真正同步的数据是通过 path 来指定的。可以根据自己的需要,来指定多个模块,模块中可以定义以下参数:

a. 基本模块参数

b. 模块控制参数

c. 模块文件筛选参数

d. 模块用户认证参数

e. 模块访问控制参数

客户主机列表定义可以是以下形式:

f. 模块日志参数

设置了”log file”参数时,在日志每行的开始会添加”%t [%p]“。

可以使用的日志格式定义符如下所示:

Rsync服务详解

利用 rsync 服务

在某个目录下所有文件中 查找 特殊字符串

Rsync是一款开源的、快速的、多功能的、可实现全量及增量的本地或远程数据同步备份的优秀工具

实现 1v4

rsync 命令可以 顶替 cp 命令 实现本地备份数据

rsync 命令可以 顶替 scp 命令 实现远程备份数据

配置文件帮助说明

备份原文件

编写配置文件

要使得参数 o 和 参数 g 生效,即客户端服务器上文件的属主和属组信息,同步至备份服务器依旧和客户端服务器保持一致。

修改 rsyncd.conf 配置文件

修改完配置文件,需要重启服务

需求:备份 a 目录所有文件,b目录除 1.txt 之外的所有文件,c目录不备份。

以上两种都是在备份目录结尾未加 '/'

需求:备份 a 目录所有文件,b 目录除 1.txt 之外的所有文件,c 目录只备份 2.txt 文件

需求:将 web01 服务器和 nfs01 服务器上的 hosts 文件备份至 备份服务器

注意: rsync 客户端无法在服务端创建多级目录,只能创建一级目录

如何白名单中有对应IP允许,则可以传输。否则,拒绝连接。

如果黑名单中没有对应IP信息,则可以传输数据。如果黑名单中有对应IP信息,则拒绝连接。

白名单优先级高于黑名单,若出现黑白名单冲突。

使得客户端可以查看服务端的模块信息

总结:建议设置 list = false ,否则不安全。

如何使用Windows下cwRsync搭建步骤文件详细同步教程

详细配置步骤如下:

一、服务器端安装配置

1、下载服务端安装文件/softs/55933.html

服务端是安装在“需要被同步的数据所在的服务器”

2、安装服务端

默认一直下一步;到下图所示

这一步很重要,可以说是cwRsync安装成功与否的关键。这一步会在当前系统下生成SvcCWRSYNC一个账户,用来启动RsyncServer服务。建议这个对此账户的密码进行重新设置,从新设置密码后,需要在服务中更改,否则RsyncServer服务不能启动

程序自动设置程序目录可修改的权限,因为需要写日志文件。

配置文件默认在程序的安装目录下,默认是 C:Program FilesICW

3、修改配置文件rsyncd.conf

use chroot = false

strict modes = false

hosts allow = *

log file = rsyncd.log

# Module definitions

# Remember cygwin naming conventions : c:work becomes /cygwin/c/work

#

[test]

path = /cygdrive/c/work

read only = false

transfer logging = yes

修改配置内容如下,参数解释:

use chroot = false # 不使用chroot

strict modes = false #使用静态模式

pid file = rsyncd.pid # 日志记录文件

log file = rsyncd.log # 日志记录文件

[test] # 这里是认证的模块名,在client端需要指定

path = /cygdrive/e/bak # 需要做镜像的目录,如e/bak(此目录需要给SvcCWRSYNC 账户的读取权限)

transfer logging = yes # 记录传输日志

read only = yes # 只读

list = no # 不允许列文件

hosts allow = 192.168.0.0/255.255.252.0

hosts deny = * # 禁止除192.168.1.0/255.255.255.0段外的连接IP

uid = 0 #解决运行后的@ERROR: invalid uid 错误

gid = 0 #解决运行后的@ERROR: invalid gid错误

lock file = rsyncd.lock #解决文件被锁定无法复制问题

#auth users = SvcCWRSYNC # 认证的用户名,这里没有这行,则表明是匿名 #secrets file = /cygdrive/c/pass/rsync.passwd # 认证文件名

创建认证文件 c/pass/rsync.passwd 内容格式:用户:密码,如SvcCWRSYNC:star888 启动RsyncServer服务并保证开机自动重启,服务器端配置完毕。

二、客户端安装配置

1、下载客户端安装文件/softs/55934.html

2、安装

一直下一步,安装完成。

3、cwRsync客户端不需要很复杂的.配置,需要设置环境变量path:c:Program FilescwRsyncbin

4、通过命令建一个批处理

@echo off #没有密码

set RSYNC_HOME=c:Program FilescwRsyncbin

cd %RSYNC_HOME%

d:

rsync -av rsync://192.168.2.242/test /cygdrive/e/test

@echo off #需要密码

set RSYNC_HOME=c:Program FilescwRsyncbin

cd %RSYNC_HOME%

d:

rsync -avzP --progress -- --password-file=/cygdrive/c/pass/rsync.passwd SvcCWRSYNC@192.168.2.242::test /cygdrive/e/test

意思是将192.168.2.242的服务端下的test模块下的e:bak目录同步到客户端的e:test下

命令参数解释:

-avzP

-a 参数,相当于-rlptgoD,-r 是递归 -l 是链接文件,意思是拷贝链接文件;-p 表示保持文件原有权限;-t 保持文件原有时间;-g 保持文件原有用户组;-o 保持文件原有属主;-D 相当于块设备文件;

-z 传输时压缩;

-P 传输进度;

-v verbose,详细模式输出

-u是只同步已经更新的文件,避免没有更新的文件被重复更新一次,不过要注意两者机器时钟的同步

--progress

显示备份过程

--

删除那些DST中SRC没有的文件

--password-file

指定密码文件,只需包含密码而不用包含用户名

SvcCWRSYNC@192.168.2.242::test

SvcCWRSYNC 登陆服务器端的用户名

192.168.2.242 服务器端的ip地址

test 服务器端指定的认证模块名,多个同步作业靠此模块名区分

/cygdrive/e/test

存放服务器端同步文件的本地目录

4、配置系统作业,运行脚本选择rsync.bat,客户端配置完毕。

(责任编辑:IT教学网)

更多

推荐网页制作视频教程文章