Rsync详解(一)

Rsync是一个用于在本地和远程主机间高效同步文件的工具,支持LAN/WAN同步,使用rsync算法仅传输差异部分。它可以使用rsync-daemon或ssh方式进行认证,提供镜像、备份和归档功能。在rsync-daemon模式下,它默认监听873端口,并可以通过配置文件进行权限控制。在ssh方式下,它利用系统用户进行认证,通过ssh隧道传输数据。文章还介绍了rsync的安装、配置和使用方法。
部署运行你感兴趣的模型镜像

Rsync是什么

rsync(remote synchronize)是一个远程数据同步工具,可通过 LAN/WAN 快速同步多台主机之间的文件。也可以使用 rsync 同步本地硬盘中的不同目录。
rsync 是用于替代 rcp 的一个工具,rsync 使用所谓的 rsync算法 进行数据同步,这种算法只传送两个文件的不同部分,而不是每次都整份传送,因此速度相当快。 您可以参考 How Rsync Works A Practical Overview 进一步了解 rsync 的运作机制。
rsync 的初始作者是 Andrew Tridgell 和 Paul Mackerras,目前由 http://rsync.samba.org 维护。
rsync 支持大多数的类 Unix 系统,无论是 Linux、Solaris 还是 BSD上 都经过了良好的测试。 CentOS系统默认就安装了 rsync 软件包。 此外,在 windows 平台下也有相应的版本,如 cwrsync 和DeltaCopy 等。
rsync 具有如下的基本特性:

可以镜像保存整个目录树和文件系统
可以很容易做到保持原来文件的权限、时间、软硬链接等
无须特殊权限即可安装
优化的流程,文件传输效率高
可以使用 rsh、ssh 方式来传输文件,当然也可以通过直接的 socket 连接
支持匿名传输,以方便进行网站镜象

在使用 rsync 进行远程同步时,可以使用两种方式:远程 Shell 方式(建议使用 ssh,用户验证由 ssh 负责)和 C/S 方式(即客户连接远程 rsync 服务器,用户验证由 rsync 服务器负责)。
无论本地同步目录还是远程同步数据,首次运行时将会把全部文件拷贝一次,以后再运行时将只拷贝有变化的文件(对于新文件)或文件的变化部分(对于原有文件)。
sync 在首次复制时没有速度优势,速度不如 tar,因此当数据量很大时您可以考虑先使用 tar 进行首次复制,然后再使用 rsync 进行数据同步。

rsync认证方式

rsync有两种常用的认证方式,一种是rsync-daemon方式,另外一种是ssh方式。
在平时使用过程,我们使用最多的是rsync-daemon方式。
注意:在使用rsync时,服务器和客户端都必须安装rsync程序。

rsync-daemon 认证

rsync在rsync-daemon认证方式下,默认监听TCP的873端口。

rsync-daemon认证方式是rsync的主要认证方式,这个也是我们经常使用的认证方式。
并且也只有在此种模式下,rsync才可以把密码写入到一个文件中。

注意:
	rsync-daemon认证方式,需要服务器和客户端都安装rsync服务
	并且只需要rsync服务器端启动rsync,同时配置rsync配置文件。
	客户端启动不启动rsync服务,都不影响同步的正常进行。

ssh认证

rsync在ssh认证方式下,可通过系统用户进行认证,即在rsync上通过ssh隧道进行传输,类似于scp工具。
此时同步操作不在局限于rsync中定义的同步文件夹。

注意:
	ssh认证方式,不需要服务器和客户端配置rsync配置文件
	只需要双方都安装rsync服务,并且也不需要双方启动rsync。

# 若rsync服务端SSH为标准端口,此时rsync使用方式如下:

	rsync -avz /root/test root@10.10.10.10:/root/


# 若rsync服务端SSH为非标准端口,可通过rsync的-e参数进行端口指定。使用方式如下:

	rsync -avz /root/test -e 'ssh -p1234' root@10.10.10.10:/root/

镜像、备份和归档

实施备份的两种情况:

  • 需保留备份历史归档:在备份时保留历史的备份归档,是为了在系统出现错误后能恢复到从前正确的状态。这可以使用完全备份和增量备份来完成。
    • 可以使用 tar 命令保存归档文件。
    • 为了提高备份效率,也可以使用 rsync 结合 tar 来完成。
  • 无需保留备份历史归档:若无需从历史备份恢复到正确状态,则只备份系统最“新鲜”的状态即可。这可以简单地使用 rsync 同步来完成。此时通常称为镜像。镜像可以分为两种:
    • 被镜像的目录在各个主机上保持相同的位置。此时一般是为了实施负载均衡而对多个主机进行同步镜像。例如:将主机 A 的 /srv/www 目录同步到主机 B 的 /srv/www 目录等。
    • 被镜像的目录在各个主机上不保持相同的位置。例如:主机 A 和主机 B 都运行着各自的业务,同时又互为镜像备份。此时主机 A 的 /srv/www 目录同步到主机 B 的 /backups/hosta/www 目录;主机 B 的 /srv/www 目录同步到主机 A 的 /backups/hostb/www 目录等。

Rsync linux安装

安装rsync,我们可以分为两种方式:源码方式安装和RPM方式安装。
无论是服务器端还是客户端都是同一个软件包

源码方式安装

# 源码方式安装rsync,需要到其官网下载对应的安装包。rsync官网:rsync.samba.org 

1)、下载
wget https://download.samba.org/pub/rsync/src/rsync-3.2.3.tar.gz

2)、解压并安装
tar -xvf rsync-3.2.3.tar.gz

3)、编译安装
# 源码安装rsync时,其编译时所需要的gcc库文件尽量提前安装完毕
# 默认安装到/usr/local/目录下
./configure##
make &&make install

4)、设置开机启动
echo “/usr/local/bin/rsync --daemon -config=/etc/rsyncd.conf” >>/etc/profile

yum方式安装

yum -y install  rsync

#设置开机启动
echo “/usr/local/bin/rsync --daemon -config=/etc/rsyncd.conf” >>/etc/profile

配置rsync daemon

服务端配置

rsync配置文件

# 以 rsync 用户启动进程
uid = rsync
gid = rsync

 # 无需让rsync以root身份运行,允许接收文件的完整属性
fake super = yes       

# 禁锢推送的数据至某个目录, 不允许跳出该目录
use chroot = no                

max connections = 200          # 最大连接数
timeout = 600                  # 超时时间
ignore errors                  # 忽略错误信息

read only = false              # 对备份数据可读写

list = false                   # 不允许查看模块信息

# 定义虚拟用户,作为连接认证用户
auth users = myuser 

# 定义rsync服务用户连接认证密码文件路径
secrets file = /etc/rsync.passwd

#### 定义模块信息
[backup]                
comment = commit        # 模块注释信息
path = /backup          # 定义接收备份数据目录

# 只允许10.10.10段ip连接
hosts allow = 10.10.10.0/24

配置并启动守护进程

# 需要一个rsync进程运行时使用的普通用户 rsync
useradd rsync -M -s /sbin/nologin

# 服务端需要定义一个客户端连接    虚拟用户名和密码
# 密码文件形式  user:passwd
echo "myuser:password" > /etc/rsync.passwd
chmod 600 /etc/rsync.passwd

# 准备模块定义好的目录,客户端的数据都存放在该目录下
mkdir /backup
chown -R rsync.rsync /backup

# 启动服务
rsync --daemon

# 查看服务
ps aux | grep rsync
netstat -lntp|grep 873

客户端使用


# 在客户端安装完毕rsync服务后,是不需要启动rsync服务的。
# 我们只需要在客户端创建连接rsync服务器时,验证码用户所需要的密码文件即可。
# 该密码文件中的密码要与rsync服务器上的密码文件中的密码对应
# 并且也要与rsync服务器rsyncd.conf配置文件中的认证模块中的用户匹配。

echo “password”>>/etc/rsync.passwd

chmod 600 /etc/rsync.passwd


# 查看 rsync 守护程序分配的所有 module 列表,可以执行下面命令。
rsync rsync://10.10.10.10


# 具体写法是服务器与目标目录之间使用双冒号分隔`::`
# 地址中的module并不是实际路径名,而是 rsync 守护程序指定的模块名

# 把本地的文件同步到远程服务器
# rsync [OPTION]… [SRC]… [USER@]HOST::DEST
# rsync [选项] [--port=]  [--password-file=] [/local/path] [用户名]@服务端IP::[模块名]

rsync -av --password-file=/etc/rsync.passwd local/ myuser@10.10.10.10::backup

# 把远程机器的文件同步到本地
# rsync [OPTION]… [USER@]HOST::SRC [DEST]
# rsync [选项] [--port=] [--password-file=] [用户名@]服务端IP::[模块名]  [/local/path]

rsync -av --password-file=/etc/rsync.passwd myuser@10.10.10.10::backup local/


您可能感兴趣的与本文相关的镜像

Wan2.2-T2V-A5B

Wan2.2-T2V-A5B

文生视频
Wan2.2

Wan2.2是由通义万相开源高效文本到视频生成模型,是有​50亿参数的轻量级视频生成模型,专为快速内容创作优化。支持480P视频生成,具备优秀的时序连贯性和运动推理能力

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

时光ART

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值