一、rsync 概述
rsync 是类 unix 系統下的数据镜像备份工具,一款支持快速完全备份和增量备份的工具,支持本地复制,远程同步等,类似于 scp 命令;rsync 命令在同步文件之前要先登录目标主机进行用户身份认证,认证过后才能进行数据同步,身份认证方式取决于所使用的协议类型,rsync 一般使用两种协议进行数据同步;ssh 协议 和 rsync 协议。
二、rsync 特性
能更新整个目录树和文件系統
有选择的保留符号链接、硬链接、文件属性、权限、设备、及时间等。
对于安装来说,无特殊权限要求。
对于多个文件来说,文件传输效率高。
能用 ssh 或自定义端口作为传输入口端口
三、rsync 工作原理
既然涉及到数据同步,必要的两个概念是:源地址(文件),目标地址(文件),以及以哪一方为基准。例如,想让目标主机上的文件和本地文件保持同步,则是以本地文件为同步基准,将本地文件作为源文件推送到目标主机上。
rsync 在进行数据同步之前需要先进行用户身份验证,验证的方式取决于使用的链接方式:
ssh 登录验证方式:使用 ssh 协议作为基础进行用户身份验证,然后进行数据同步。
rsync 登录验证方式:使用 rsync 协议进行用户身份验证(非系統用户),然后进行数据同步。
数据同步方式:推送(上传)、拉取(下载)
四、rsync 实验演示
我们一般使用 rsync 来进行单向数据同步,因此我们需要确定一个基数,比如:两台服务器,一台 NFS 作为网站数据服务器(基准服务器),另一台专门作为 rsync 数据备份服务器。
4.1 ssh 协议数据同步:将 NFS 服务器数据同步备份到 rsync 服务器
环境:一台 NFS 服务器,一台 rsync 服务器。
在两台服务器上分别创建目录( /filesrc 、/filedst )
下行同步(下载)
格式:rsync -avz 服务器地址:/服务器目录/* /本地目录
示例:rsync -avz user@ip:/filesrc/* /filedst
-z:传输时进行压缩提高效率
-v:显示rsync过程中详细信息。可以使用"-vvvv"获取更详细信息
-P:显示文件传输的进度信息
-a --archive:归档模式,表示递归传输并保持文件属性,等同于"-rtopgDl"
-r --recursive:以递归模式拷贝目录
-R --relative:使用相对路径
-l --links:如果文件是软链接,则拷贝软链接本身而非软链接所指向的文件
-L --copy-links:如果文件是软链接,拷贝软链接指向的文件
-W --whole-file:拷贝文件时不进行增量检测
-t --times:保持 mtime 属性
rsync 默认用"quick check"算法决定哪些文件需要增量传输。此算法只比较文件的大小和 mtime,即使其它属性不同也会认为它们是完全相同的文件,从而不需要增量传输 建议任何时候都加上"-t",否则目标文件 mtime 会设置为系统时间,导致下次更新检查出 mtime 不同而导致增量传输无效
上行同步(上传)
格式:rsync -avz /本地目录/* 服务器地址:/服务器目录
示例:rsync -avz /filedst/* user@ip:/filesrc
注意:使用 root 在生产环境中不要使用 root 用户, 尽量使用单独创建的用户,减少权限溢出。
创建用来做数据同步的用户,并给予用户对目录的相应权限,一般是用 ACL 设置权限
useradd zhangsan
passwd zhangsan
setfacl -m u:zhangsan:rwx /filesrc
若要实现免密数据同步,只需要做好 ssh 密钥对登录即可(两台机器都要做)
ssh-keygen -t rsa -b 2048
ssh-copy-id user@IP
4.2 rsync 协议数据同步,将 NFS 服务器数据同步备份到 rsync 服务器
环境:一台 NFS 服务器,一台 rsync 服务器。
在两台服务器上分别创建目录( /filesrc 、/filedst )
1、搭建 rsync 服务(仅西需要在 NFS 服务器上搭建即可)
a.创建主配置文件( /etc/rsyncd.conf ) 默认没有自己创建
address = 10.145.81.212 #rsync 服务绑定
IP prot 873 #默认服务器端口 873
log file = /var/log/rsyncd.log #日志文件位置
pid file = /var/run/rsyncd.pid #进程号文件位置
[web] #共享名:用来连接是写在 url 上的,切记。
comment = web directory backup #共享描述语句
path = /filesrc #实际共享目录
read only = no #是否仅允许读取
dont conpress = *.gz *.bz2 #哪些文件不进行压缩
auth users = zhangsan #登录用户名(非系統用户,需要自己创建)
secrets file = /etc/rsyncd_users.db #认证账户密码文件(需要自己创建-同上)
b.创建认证所需要的密码文件
# vim /etc/rsyncd_users.db
zhangsan:123456
# chmod 600 /etc/rsyncd_users.db #必须修改权限,否则登录报错
c.启动服务
# rsync --daemon # netstat -tunpl | grep 873
d.设置映射用户对共享目录有权限
# setfacl -m u:nobady:rwx /filesrc
注意:关闭服务可使用 kill 命令,但偶尔会造成服务结束但进程配置文件不被删除的问题,若遇到此类问题可以手动删除,再启动则正常(建议自己写一个 rsync 的服务管理脚本)
下行同步(下载)
格式:rsync -avz rsync://用户名@服务器地址/共享模块名 /本地目录
示例:rsync -avz rsync://zhangsan@IP/web /filedst
拓展 --delete :删除本地比服务器多出来的文件(源地址没有,目标地址有的删掉)
rsync -avz --delete rsync://zhangsan@IP/web /filedst
上行同步(上传)
格式:rsync -avz /本地目录/* rsync://用户名@服务器地址/共享模块名
示例:rsync -avz /filedst/* rsync://zhagnsan@IP/web
rsync 协议的免密可以借助一个环境变量来实现
# export RSYNC_PASSWORD=虚拟用户密码(客户端执行)
<iframe style="display: none !important;"></iframe>
相关推荐
linux发行版中大多都自带rsync,不过版本比较低,一般都是2.6.X 在2.X的版本中,rsync备份时都是先列表再备份(添加或者删除),在处理大量文件时,会耗费比较多的内存。 备份的时候,rsync扫描到的每个文件(目录也...
Rsync命令详解 在对rsync服务器配置结束以后,下一步就需要在客户端发出rsync命令来实现将服务器端的文件备份到客户端来。rsync是一个功能非常强大的工具,其命令也有很多功能特色选项。 一、rsync的六种工作模式: ...
3、进入到“auto_rsync_bat”文件夹下,修改批处理文件“rsync-demo.bat” 4、修改rsync-demo.bat 注意: 4.1、源目录必须使用“demo“中的样式。 4.2、其他几个变量请根据你实际操作的目录和远程主机信息来设置...
rsync+inotify实现实时同步 随着应用系统规模的不断扩大,对数据的安全性和可靠性也提出的更好的要求,rsync在高端业务系统中也逐渐暴露出了很多不足,首先,rsync同 步数据时,需要扫描所有文件后进行比对,进行差...
rsync 服务器架设方法 v0.1b (正在修订中) 作者: 北南南北 来自:Linuxsir.Org 摘要: rsync 是一个快速增量文件传输工具,它可以用于在同一主机备份内部的备分,我们还可以把它作为不同主机网络备份工具之用。...
RSYNC软件介绍: rsync是类unix系统下的数据镜像备份工具,从软件的命名上就可以看出来了——remote sync。它的特性如下: 可以镜像保存整个目录树和文件系统。 可以很容易做到保持原来文件的权限、时间、软硬链接...
rsync同步指定目录 rsync使用–include参数与–exclude参数来实现同步指定目录,并且–exclude目录放在后面。 例如: linux上文件目录 代码如下: ls /usr/local/apache/htdocs/site aa bb cc dd ee .. zz 只想同步...
ubuntu rsync中文乱码 window ubuntu rsync同步中文乱码.docx
aix下rsync安装包,可用于AIX平台下与linux平台下的数据同步
Rsync is a fast and extraordinarily versatile file copying tool. It can copy locally, to/from another host over any remote shell, or to/from a remote rsync daemon. It offers a large number of options ...
AIX文件同步复制工具RSYNC,rsync-3.1.2 for aix6.1。。。
rsync常见错误及解决方法rsync常见错误及解决方法rsync常见错误及解决方法
linux 下rsync文件夹同步配置,可以定时。
rsync-3.1.2-4.el7.x86_64.rpm linux系统下rsync安装包
适用于Centos7.9的rsync 工具安装包 rsync-3.1.2-10.el7.x86_64.rpm
于是放弃,打算用rsync进行同步,在摸索的过程中走了很多湾路,所以写出来让大家参考,网上的大部份的windows 和 rsync的教程都是存在问题的同步不了! 首先是要进群晖的SSH里进行修改相关配置文件,详细的见附件。 ...
rsync是类unix系统下的数据镜像备份工具,从软件的命名上就可以看出来了——remote sync。它的特性如下: 1、可以镜像保存整个目录树和文件系统。 2、可以很容易做到保持原来文件的权限、时间、软硬链接等等。 3、...
linux系统下rsync同步数据命令详细解答。
ranger-2.1.0-usersync.tar.gz
远程文件传输rsync-断点续传及增量传输,rsync实现断点续传 传送文件较大时,如果网络中断了,重传比较费时。可以考虑使用rsync命令替代scp来断点续传文件 win10下使用git配置rsync实现断点续传,解压缩后cp到git对应usr...