阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Rsync企业实战之自动异地备份

140次阅读
没有评论

共计 13188 个字符,预计需要花费 33 分钟才能阅读完成。

认真的测试过网上的大多数文章和版本,真正能一次性测试通过的文章太少了,需要反复的推敲,反复的查阅资料,才能真正的测试成功,所以,在此背景下,总结了 Rsync, 加上自己的理解分享出来;

1、原理篇

Rsync,故名思议,是一个远程数据同步工具,可以镜像整个目录树和文件系统,也可以保持源文件的权限,时间和软硬链接,可以优化数据,文件重复数据的删除,也可以在 LAN/WAN 之间快速的同步多台主机的数据,这主要得益于 Rsync 的压缩和 Rsync 的核心算法,其算法,是本地和远程两台主机之间的文件达到同步并保持一致,并且只传送两个文件的不同部分,而不是整个数据进行传送,所以,速度非常快;

一个 Rsync server 能够同时备份多个客户端数据,也可以一个客户端备份多个 Rsync server 的数据;

Rsync 支持搭配 scp,ssh 和 daemon 模式,默认端口是 873,当第一次连接的时候,会对数据进行完整备份,之后的所有备份,都是进行增量备份,只备份又变化的数据;

Rsync 只支持单向备份,不支持双向,如果需要双向同步的,可以使用 Unison;如果需要实时同步的,可以结合 Rsync+inotify;

Rsync 服务以只读方式提供要备份的数据,避免破坏生产环境的数据;

在这里,有必要对Rsync 的核心算法,进行讲解:

假定在名为 α 和 β 的两台计算机之间同步相似的文件 A 与 B,其中 α 对文件 A 拥有访问权,β 对文件 B 拥有访问权。并且假定主机 α 与 β 之间的网络带宽很小。那么 Rsync 算法将通过下面的五个步骤来完成:

β 将文件 B 分割成一组不重叠的固定大小为 S 字节的数据块。最后一块可能会比 S 小。
β 对每一个分割好的数据块执行两种校验:一种是 32 位的滚动弱校验,另一种是 128 位的 MD4 强校验。
β 将这些校验结果发给 α。
α 通过搜索文件 A 的所有大小为 S 的数据块(偏移量可以任选,不一定非要是 S 的倍数),来寻找与文件 B 的某一块有着相同的弱校验码和强校验码的数据块。这项工作可以借助滚动校验的特性很快完成。
α 发给 β 一串指令来生成文件 A 在 β 上的备份。这里的每一条指令要么是对文件 B 经拥有某一个数据块而不须重传的证明,要么是一个数据块,这个数据块肯定是没有与文件 B 的任何一个数据块匹配上的。

Rsync 适用于 linux、solaris 和 bsd,在 Windows 平台下,有 cwRsync。

本文,将以 Linux 的 Rsync 和以 Window 的 cwRsync 为例讲解。

2、Rsync 服务端

2.1、安装

源码安装

下载 rsync 服务端程序,

tar zxvf rsync-2.6.9.tar.gz

cd rsync-2.6.9

./configure –prefix=/usr/local/rsync

make

make install

rpm安装

yum install rsync

本文以 yum 来安装

2.2、服务器运行模式

模式选择

对于负载比较重的,选择独立服务启动

对于负载比较轻的,选择以 xinet.d 启动,选择此模式,记得要安装 xinet.d(yum install xinet.d)

独立运行模式

/usr/bin/rsync –daemon –config=/etc/rsyncd.conf(本例选择此方法)

如果需要系统开机启动,可以把上面命令加入到 /etc/rc.local 文件中。

2.3、服务器配置

创建配置文件和口令文件

touch /etc/rsyncd.conf 主要配置文件

touch /etc/rsync.pas 口令文件,此文件需要注意客户端和服务器端的格式,后续会讲解

关于配置文件 rsyncd.conf 讲解

Rsync 的配置文件,分为两个部分,全局配置和模块配置,

#全局设置

uid = root 指定模块以 root 用户来传输文件,如果匿名用户的话,这里填写 nobody

gid = root 指定模块以 root 用户组来传输文件,如果匿名传输的话,这里填写 nobody

use chroot = yes 设置为 YES,表示在传输文件之前,定位到根目录下,即 PATH 指定的目录,这样做,主要是出于安全考虑

pid file = /var/run/rsyncd.pid Rsync 守护进程把其 PID 写入的文件

lock file = /var/run/rsync.lock 指定支持 max connections 的锁文件

log file = /var/log/rsyncd.log 指定 Rsync 守护进程产生的日志文件,而不是传送给 syslog

#模块设置

[Jindie] 模块名称,后续上传下载文件配置时,直接使用此名称名来指定

path = /sda1/JDdatabase 指定此模块的根目录,即文件上传下载都是在此目录下进行

ignore errors 指定在 rsync 服务器上运行 delete 操作时是否忽略 I/O 错误

read only = false 指定是否允许上传,false 代表允许上传。

write only = false 指定是否允许下载,false 代表允许下载。

list = true 指定当客户请求列出可以使用的模块,该模块是否被列出。如果 false,可以创建隐藏的模块。

hosts allow = 192.168.1.65 指定哪些客户端可以访问连接此模块,可以指定单个 IP,整个网段,比如此例为单个 IP

hosts deny = 0.0.0.0/0 指定哪些客户端不允许连接此模块,此例为 0.0.0.0/ 0 网段,代表整个网络

通常表示客户端表示方式,有如下:

单个 IP:192.168.1.65

网段 IP:192.168.1.0/24

可解析的主机地址:www.baidu.com

域内主机:*.wine9.com

所有主机:*

多个列表项,要用空格隔开;

auth users = xy 指定认证用户名,通常由空格或者逗号分隔用户名列表,只有这些用户可以连接此模块,用户名和密码,以明文形式,保存在口令文件中

syslog facility = local5 指定日志等级,一般指发送给 rsyslog 的日志等级;

secrets file = /etc/rsync.pas 指定 Rsync 认证口令文件,只有配置了 auth users,此配置才生效,这里要注意客户端和服 务器端的配置格式。

ignore nonreadable 指定 rysnc 服务器完全忽略那些用户没有访问权限的文件,这对于在需要备份的目录中有些不应该被备份者获取的文件时非常有意义

timeout 600 设置客户端连接超时时间,确保服务器不会永远等待一个奔溃的客户端。

dont compress=*.gz 指定哪些文件在传输之前,不需要进行压缩的文件。

max connections = 4 指定此模块最大的并发连接数为 4,超过的告知随后再试

exclude 指定多个由空格隔开的多个文件或目录(相对路径),并将其添加到 exclude 列表中。这等同于在客户端命令中使用 –exclude 来指定模式。

Exclude from 指定一个包含 exclude 规则定义的文件名,服务器从该文件中读取 exclude 列表定义

include 指定多个由空格隔开的多个文件或目录(相对路径),并将其添加到 include 列表中。这等同于在客户端命令中使用 –include 来指定模式

Include from 指定一个包含 include 规则定义的文件名,服务器从该文件中读取 include 列表定义

2.4、建立 Rsync 口令文件

创建口令文件

touch /etc/rsync.pas #口令文件,保存 Rsync 用户和密码验证信息,不需要是系统账号;

vi /etc/rsync.pas

xy:abc123 #格式为 用户名:口令,此账号不用是系统账号

Rsync 企业实战之自动异地备份

注意与后面的客户端口令文件的格式进行比较,相较两者不同点,这一点,有很多童鞋容易弄错了,重要的事情说三遍,注意格式,注意格式,注意格式。

2.5、口令文件权限

口令文件,需要设置口令文件权限,这一步同样非常重要,Rsync 对权限的要求还是比较敏感的。

#chown root:root /etc/rsync.pas #root:root 指的是当前启动此服务的用户,并设置为属主

#chmod 600 /etc/rsync.pas #指定启动此 Rsync 服务的用户的权限为只读权限,也就是前面提到的属主的权限。

3、Rsync 客户端

客户端本例,选择 windows 的 cwrsync 工具,安装不用多说。

3.1、创建口令文件

新建 rsync.pas 文件,添加内如如下:

因为我使用的用户名是 xy,此设置的密码,必须跟服务器端 rsync.pas 口令文件中设置的密码一样,比如本例口令为 abc123;

那么,本例中设置为:

abc123

Rsync 企业实战之自动异地备份

3.2、口令文件权限

windows 口令文件的权限一定要设置正确,否则验证无法通过,应将口令文件 c:\rsync.pas 的权限加入系统登录的账号读取权限以及设置其为该文件的所有者(这里跟服务器端有点不同,正常来说,无论 windows 还是 liunx,服务器端的这个用户名,应该是启动 Rsync 服务的用户名,但是对于 windows 客户端来说,一般都是系统登录账号)

定位到 cwRsync 客户端安装目录,C:\Program Files (x86)\cwRsync\bin

chmod 600 /cygdrive/c/rsync.pas

chown administrator /cygdrive/c/rsync.pas #如果没有 chown.exe 文件,可以从服务器端的安装目录的 bin 目录下直接复制过来就可以使用,

注:Rsync 对路径的书写格式,与 windows 不同,它是遵循,postfix 书写格式,

————————————– 分割线 ————————————–

RSync 实现文件备份同步详解   http://www.linuxidc.com/Linux/2014-09/106967.htm

利用 inotifywait 监控主机文件和目录 http://www.linuxidc.com/Linux/2013-03/81075.htm

利用 inotify+rsync 实现 Linux 文件批量更新 http://www.linuxidc.com/Linux/2012-01/52132.htm

inotify-tools+rsync 实时同步文件安装和配置 http://www.linuxidc.com/Linux/2012-06/63624.htm

rsync 同步完整配置 http://www.linuxidc.com/Linux/2013-06/85781.htm

CentOS 6.5 下 Rsync 远程同步 http://www.linuxidc.com/Linux/2014-05/101084.htm

Linux 文件夹对比并提取的差分文件技巧 -rsync 的妙用 http://www.linuxidc.com/Linux/2016-02/128307.htm

————————————– 分割线 ————————————–

3.3、同步文件

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]

对于以上六种命令格式,

1)rsync [OPTION]… SRC DEST

拷贝本地文件,当 SRC 和 DEST 路径信息都不包含有单个冒号“:“,就启动此工作模式,

rsync.exe –vzrtopg /data /backup

2)rsync [OPTION]… SRC [USER@]HOST:DEST

使用一个远程 shell 程序 (如 rsh、ssh) 来实现将本地机器的内容拷贝到远程机器。当 DST 路径地址包含单个冒号 ”:” 分隔符时启动该模式。如:rsync -avz *.c foo:src

3) rsync [OPTION]… [USER@]HOST:SRC DEST  
使用一个远程 shell 程序 (如 rsh、ssh) 来实现将远程机器的内容拷贝到本地机器。当 SRC 地址路径包含单个冒号 ”:” 分隔符时启动该模式。如:rsync -avz foo:src/bar /data

4) rsync [OPTION]… [USER@]HOST::SRC DEST  
从远程 rsync 服务器中拷贝文件到本地机。当 SRC 路径信息包含 ”::” 分隔符时启动该模式。如:rsync -av root@172.16.78.192::www /databack,其中 www 是在 rsync 配置文件中,指定的模块的名称。

5) rsync [OPTION]… SRC [USER@]HOST::DEST  
从本地机器拷贝文件到远程 rsync 服务器中。当 DST 路径信息包含 ”::” 分隔符时启动该模式。如:rsync -av /databack root@172.16.78.192::www,其中 www 是在 rsync 配置文件中,指定的模块的名称。

6) rsync [OPTION]… rsync://[USER@]HOST[:PORT]/SRC [DEST]  
列远程机的文件列表。这类似于 rsync 传输,不过只要在命令中省略掉本地机信息即可。如:rsync -v rsync://172.16.78.192/www

上传同步文件

rsync.exe -vzrtopg –progress –delete /cygdrive/c/test/*.txt xy@192.168.31.13::Jindie –password-file=/cygdrive/c/rsync.pas

解释:

rsync.exe 即 rsync 命令

vzrtopg 指定参数,传输的详细信息;

–delete 删除哪些在 DST 中存在,而 SRC 中没有存在的文件或者目录

/cygdrive/c/test/*.txt 注意这里的格式,不能使用 windows 的格式,必须使用 POSTFIX 标准格式;

xy@192.168.31.13::Jindie xy 是有权访问服务器的用户名,192.168.31.13 是服务器地址,Jindie 是服务器端配置文件中指定的模块,这个模块中指定用户信息和同步路径;服务器地址和模块之间,用两个冒号隔开。

–password-file=/cygdrive/c/rsync.pas 口令文件,当中含有 xy 账号的密码,要与服务器端配置文件 rsyncd.conf 中指定的口令文件中设置的密码相同。

下载同步文件

rsync.exe -vzrtopg –progress –delete xy@192.168.31.13::Jindie /cygdrive/c/test –password-file=/cygdrive/c/rsync.pas

通常,因为上传和下载的方向性不同,直接调换源文件路径和目标地址的路径,即可。

更多详情见请继续阅读下一页的精彩内容:http://www.linuxidc.com/Linux/2016-08/134595p2.htm

4、定时同步备份

把上面的命令写入到批处理器文件中,比如 test.bat,通过任务计划来实现定时备份。

C:\Program Files (x86)\cwRsync\bin

rsync.exe -vzrtopg –progress –delete /cygdrive/c/test/*.txt xy@192.168.31.13::Jindie –password-file=/cygdrive/c/rsync.pas

复制上面命令,保存到 test.bat 文件中,

开始 — 所有程序 – 附件 – 系统工具 – 任务计划程序

展开 任务计划程序库 –Microsoft,右击“创建基本任务“

Rsync 企业实战之自动异地备份

创建基本任务向导,输入”名称”

Rsync 企业实战之自动异地备份

点击“下一步”

Rsync 企业实战之自动异地备份

任务触发器,根据实际需要,设置每日,每周,每月同步,这里,我选择每日备份,可以减少带宽压力。

Rsync 企业实战之自动异地备份

设置,每日启动的时间,这里设置每日,凌晨 1 点,点击“下一步”

Rsync 企业实战之自动异地备份

选择“启动程序“

Rsync 企业实战之自动异地备份

浏览,选择 脚本文件

Rsync 企业实战之自动异地备份

点击”完成“

到此,部署,已经全部完成。

Rsync 的详细介绍:请点这里
Rsync 的下载地址:请点这里

本文永久更新链接地址:http://www.linuxidc.com/Linux/2016-08/134595.htm

认真的测试过网上的大多数文章和版本,真正能一次性测试通过的文章太少了,需要反复的推敲,反复的查阅资料,才能真正的测试成功,所以,在此背景下,总结了 Rsync, 加上自己的理解分享出来;

1、原理篇

Rsync,故名思议,是一个远程数据同步工具,可以镜像整个目录树和文件系统,也可以保持源文件的权限,时间和软硬链接,可以优化数据,文件重复数据的删除,也可以在 LAN/WAN 之间快速的同步多台主机的数据,这主要得益于 Rsync 的压缩和 Rsync 的核心算法,其算法,是本地和远程两台主机之间的文件达到同步并保持一致,并且只传送两个文件的不同部分,而不是整个数据进行传送,所以,速度非常快;

一个 Rsync server 能够同时备份多个客户端数据,也可以一个客户端备份多个 Rsync server 的数据;

Rsync 支持搭配 scp,ssh 和 daemon 模式,默认端口是 873,当第一次连接的时候,会对数据进行完整备份,之后的所有备份,都是进行增量备份,只备份又变化的数据;

Rsync 只支持单向备份,不支持双向,如果需要双向同步的,可以使用 Unison;如果需要实时同步的,可以结合 Rsync+inotify;

Rsync 服务以只读方式提供要备份的数据,避免破坏生产环境的数据;

在这里,有必要对Rsync 的核心算法,进行讲解:

假定在名为 α 和 β 的两台计算机之间同步相似的文件 A 与 B,其中 α 对文件 A 拥有访问权,β 对文件 B 拥有访问权。并且假定主机 α 与 β 之间的网络带宽很小。那么 Rsync 算法将通过下面的五个步骤来完成:

β 将文件 B 分割成一组不重叠的固定大小为 S 字节的数据块。最后一块可能会比 S 小。
β 对每一个分割好的数据块执行两种校验:一种是 32 位的滚动弱校验,另一种是 128 位的 MD4 强校验。
β 将这些校验结果发给 α。
α 通过搜索文件 A 的所有大小为 S 的数据块(偏移量可以任选,不一定非要是 S 的倍数),来寻找与文件 B 的某一块有着相同的弱校验码和强校验码的数据块。这项工作可以借助滚动校验的特性很快完成。
α 发给 β 一串指令来生成文件 A 在 β 上的备份。这里的每一条指令要么是对文件 B 经拥有某一个数据块而不须重传的证明,要么是一个数据块,这个数据块肯定是没有与文件 B 的任何一个数据块匹配上的。

Rsync 适用于 linux、solaris 和 bsd,在 Windows 平台下,有 cwRsync。

本文,将以 Linux 的 Rsync 和以 Window 的 cwRsync 为例讲解。

2、Rsync 服务端

2.1、安装

源码安装

下载 rsync 服务端程序,

tar zxvf rsync-2.6.9.tar.gz

cd rsync-2.6.9

./configure –prefix=/usr/local/rsync

make

make install

rpm安装

yum install rsync

本文以 yum 来安装

2.2、服务器运行模式

模式选择

对于负载比较重的,选择独立服务启动

对于负载比较轻的,选择以 xinet.d 启动,选择此模式,记得要安装 xinet.d(yum install xinet.d)

独立运行模式

/usr/bin/rsync –daemon –config=/etc/rsyncd.conf(本例选择此方法)

如果需要系统开机启动,可以把上面命令加入到 /etc/rc.local 文件中。

2.3、服务器配置

创建配置文件和口令文件

touch /etc/rsyncd.conf 主要配置文件

touch /etc/rsync.pas 口令文件,此文件需要注意客户端和服务器端的格式,后续会讲解

关于配置文件 rsyncd.conf 讲解

Rsync 的配置文件,分为两个部分,全局配置和模块配置,

#全局设置

uid = root 指定模块以 root 用户来传输文件,如果匿名用户的话,这里填写 nobody

gid = root 指定模块以 root 用户组来传输文件,如果匿名传输的话,这里填写 nobody

use chroot = yes 设置为 YES,表示在传输文件之前,定位到根目录下,即 PATH 指定的目录,这样做,主要是出于安全考虑

pid file = /var/run/rsyncd.pid Rsync 守护进程把其 PID 写入的文件

lock file = /var/run/rsync.lock 指定支持 max connections 的锁文件

log file = /var/log/rsyncd.log 指定 Rsync 守护进程产生的日志文件,而不是传送给 syslog

#模块设置

[Jindie] 模块名称,后续上传下载文件配置时,直接使用此名称名来指定

path = /sda1/JDdatabase 指定此模块的根目录,即文件上传下载都是在此目录下进行

ignore errors 指定在 rsync 服务器上运行 delete 操作时是否忽略 I/O 错误

read only = false 指定是否允许上传,false 代表允许上传。

write only = false 指定是否允许下载,false 代表允许下载。

list = true 指定当客户请求列出可以使用的模块,该模块是否被列出。如果 false,可以创建隐藏的模块。

hosts allow = 192.168.1.65 指定哪些客户端可以访问连接此模块,可以指定单个 IP,整个网段,比如此例为单个 IP

hosts deny = 0.0.0.0/0 指定哪些客户端不允许连接此模块,此例为 0.0.0.0/ 0 网段,代表整个网络

通常表示客户端表示方式,有如下:

单个 IP:192.168.1.65

网段 IP:192.168.1.0/24

可解析的主机地址:www.baidu.com

域内主机:*.wine9.com

所有主机:*

多个列表项,要用空格隔开;

auth users = xy 指定认证用户名,通常由空格或者逗号分隔用户名列表,只有这些用户可以连接此模块,用户名和密码,以明文形式,保存在口令文件中

syslog facility = local5 指定日志等级,一般指发送给 rsyslog 的日志等级;

secrets file = /etc/rsync.pas 指定 Rsync 认证口令文件,只有配置了 auth users,此配置才生效,这里要注意客户端和服 务器端的配置格式。

ignore nonreadable 指定 rysnc 服务器完全忽略那些用户没有访问权限的文件,这对于在需要备份的目录中有些不应该被备份者获取的文件时非常有意义

timeout 600 设置客户端连接超时时间,确保服务器不会永远等待一个奔溃的客户端。

dont compress=*.gz 指定哪些文件在传输之前,不需要进行压缩的文件。

max connections = 4 指定此模块最大的并发连接数为 4,超过的告知随后再试

exclude 指定多个由空格隔开的多个文件或目录(相对路径),并将其添加到 exclude 列表中。这等同于在客户端命令中使用 –exclude 来指定模式。

Exclude from 指定一个包含 exclude 规则定义的文件名,服务器从该文件中读取 exclude 列表定义

include 指定多个由空格隔开的多个文件或目录(相对路径),并将其添加到 include 列表中。这等同于在客户端命令中使用 –include 来指定模式

Include from 指定一个包含 include 规则定义的文件名,服务器从该文件中读取 include 列表定义

2.4、建立 Rsync 口令文件

创建口令文件

touch /etc/rsync.pas #口令文件,保存 Rsync 用户和密码验证信息,不需要是系统账号;

vi /etc/rsync.pas

xy:abc123 #格式为 用户名:口令,此账号不用是系统账号

Rsync 企业实战之自动异地备份

注意与后面的客户端口令文件的格式进行比较,相较两者不同点,这一点,有很多童鞋容易弄错了,重要的事情说三遍,注意格式,注意格式,注意格式。

2.5、口令文件权限

口令文件,需要设置口令文件权限,这一步同样非常重要,Rsync 对权限的要求还是比较敏感的。

#chown root:root /etc/rsync.pas #root:root 指的是当前启动此服务的用户,并设置为属主

#chmod 600 /etc/rsync.pas #指定启动此 Rsync 服务的用户的权限为只读权限,也就是前面提到的属主的权限。

3、Rsync 客户端

客户端本例,选择 windows 的 cwrsync 工具,安装不用多说。

3.1、创建口令文件

新建 rsync.pas 文件,添加内如如下:

因为我使用的用户名是 xy,此设置的密码,必须跟服务器端 rsync.pas 口令文件中设置的密码一样,比如本例口令为 abc123;

那么,本例中设置为:

abc123

Rsync 企业实战之自动异地备份

3.2、口令文件权限

windows 口令文件的权限一定要设置正确,否则验证无法通过,应将口令文件 c:\rsync.pas 的权限加入系统登录的账号读取权限以及设置其为该文件的所有者(这里跟服务器端有点不同,正常来说,无论 windows 还是 liunx,服务器端的这个用户名,应该是启动 Rsync 服务的用户名,但是对于 windows 客户端来说,一般都是系统登录账号)

定位到 cwRsync 客户端安装目录,C:\Program Files (x86)\cwRsync\bin

chmod 600 /cygdrive/c/rsync.pas

chown administrator /cygdrive/c/rsync.pas #如果没有 chown.exe 文件,可以从服务器端的安装目录的 bin 目录下直接复制过来就可以使用,

注:Rsync 对路径的书写格式,与 windows 不同,它是遵循,postfix 书写格式,

————————————– 分割线 ————————————–

RSync 实现文件备份同步详解   http://www.linuxidc.com/Linux/2014-09/106967.htm

利用 inotifywait 监控主机文件和目录 http://www.linuxidc.com/Linux/2013-03/81075.htm

利用 inotify+rsync 实现 Linux 文件批量更新 http://www.linuxidc.com/Linux/2012-01/52132.htm

inotify-tools+rsync 实时同步文件安装和配置 http://www.linuxidc.com/Linux/2012-06/63624.htm

rsync 同步完整配置 http://www.linuxidc.com/Linux/2013-06/85781.htm

CentOS 6.5 下 Rsync 远程同步 http://www.linuxidc.com/Linux/2014-05/101084.htm

Linux 文件夹对比并提取的差分文件技巧 -rsync 的妙用 http://www.linuxidc.com/Linux/2016-02/128307.htm

————————————– 分割线 ————————————–

3.3、同步文件

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]

对于以上六种命令格式,

1)rsync [OPTION]… SRC DEST

拷贝本地文件,当 SRC 和 DEST 路径信息都不包含有单个冒号“:“,就启动此工作模式,

rsync.exe –vzrtopg /data /backup

2)rsync [OPTION]… SRC [USER@]HOST:DEST

使用一个远程 shell 程序 (如 rsh、ssh) 来实现将本地机器的内容拷贝到远程机器。当 DST 路径地址包含单个冒号 ”:” 分隔符时启动该模式。如:rsync -avz *.c foo:src

3) rsync [OPTION]… [USER@]HOST:SRC DEST  
使用一个远程 shell 程序 (如 rsh、ssh) 来实现将远程机器的内容拷贝到本地机器。当 SRC 地址路径包含单个冒号 ”:” 分隔符时启动该模式。如:rsync -avz foo:src/bar /data

4) rsync [OPTION]… [USER@]HOST::SRC DEST  
从远程 rsync 服务器中拷贝文件到本地机。当 SRC 路径信息包含 ”::” 分隔符时启动该模式。如:rsync -av root@172.16.78.192::www /databack,其中 www 是在 rsync 配置文件中,指定的模块的名称。

5) rsync [OPTION]… SRC [USER@]HOST::DEST  
从本地机器拷贝文件到远程 rsync 服务器中。当 DST 路径信息包含 ”::” 分隔符时启动该模式。如:rsync -av /databack root@172.16.78.192::www,其中 www 是在 rsync 配置文件中,指定的模块的名称。

6) rsync [OPTION]… rsync://[USER@]HOST[:PORT]/SRC [DEST]  
列远程机的文件列表。这类似于 rsync 传输,不过只要在命令中省略掉本地机信息即可。如:rsync -v rsync://172.16.78.192/www

上传同步文件

rsync.exe -vzrtopg –progress –delete /cygdrive/c/test/*.txt xy@192.168.31.13::Jindie –password-file=/cygdrive/c/rsync.pas

解释:

rsync.exe 即 rsync 命令

vzrtopg 指定参数,传输的详细信息;

–delete 删除哪些在 DST 中存在,而 SRC 中没有存在的文件或者目录

/cygdrive/c/test/*.txt 注意这里的格式,不能使用 windows 的格式,必须使用 POSTFIX 标准格式;

xy@192.168.31.13::Jindie xy 是有权访问服务器的用户名,192.168.31.13 是服务器地址,Jindie 是服务器端配置文件中指定的模块,这个模块中指定用户信息和同步路径;服务器地址和模块之间,用两个冒号隔开。

–password-file=/cygdrive/c/rsync.pas 口令文件,当中含有 xy 账号的密码,要与服务器端配置文件 rsyncd.conf 中指定的口令文件中设置的密码相同。

下载同步文件

rsync.exe -vzrtopg –progress –delete xy@192.168.31.13::Jindie /cygdrive/c/test –password-file=/cygdrive/c/rsync.pas

通常,因为上传和下载的方向性不同,直接调换源文件路径和目标地址的路径,即可。

更多详情见请继续阅读下一页的精彩内容:http://www.linuxidc.com/Linux/2016-08/134595p2.htm

正文完
星哥说事-微信公众号
post-qrcode
 
星锅
版权声明:本站原创文章,由 星锅 2022-01-21发表,共计13188字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中