云计算百科
云计算领域专业知识百科平台

rsync服务--学习笔记

一、rsync 是什么?

rsync 是一个开源工具,主要功能是:

高效、安全地同步文件和目录,支持本地复制、SSH 协议下的远程复制,也可以作为守护进程(daemon)运行,实现类似 FTP 的文件服务功能。


二、rsync 的主要特点

特点说明
增量同步 只同步发生变化的部分,减少网络传输量(基于“delta algorithm”差异算法)
支持压缩 可使用 -z 参数进行压缩,提高传输效率
支持 SSH 加密 默认使用 SSH 通道加密传输,安全性高
保留权限信息 可以保留文件的权限、时间戳、软链接等元数据
支持守护进程模式 可以设置成服务端 rsyncd,在客户端通过 rsync:// 协议连接

假设客户端上有 file1 file2 file3 文件,服务端上有 file1 文件,现要将客户端上的数据备份至服务端

全量备份

将客户端所有的数据内容 file1 file2 file3 全部备份至服务端 (效率低下, 占用空间)

增量备份:

增量备份,将客户端的 file2 file3 增量备份至服务端 (提高备份效率,节省空间, 适合异地备份


三、rsync 的工作方式

命令选项

‐a #归档模式传输, 等于‐tropgDl

‐v #详细模式输出, 打印速率, 文件数量等

‐z #传输时进行压缩以提高效率

rsync 有两种使用模式:

1. 本地模式

Local: rsync [OPTION...] SRC... [DEST]
本地: 命令 选项参数 源文件 目标位置

最常见,适用于临时同步:

rsync -avz /local/dir/ user@remote:/remote/dir/

解释:

  • -a:归档模式,保留权限等信息
  • -v:详细输出
  • -z:压缩传输
  • /local/dir/:本地路径(尾部的 / 表示仅同步目录内容)
  • user@remote:/remote/dir/:目标地址(远程)

2. SSH 远程模式

拉取远程虚拟机信息

Pull: rsync [OPTION...] [USER@]HOST:SRC... [DEST]
拉取:
rsync: 命令
-avz: 参数
USER@: 用户
HOST: 主机IP地址 域名 主机名称
:SRC: 源文件
DEST: 目标位置/ 下载到本地的哪个目录

案例1

# 192.168.163.80拉取192.168.163.130上的/root/7.txt 到本地的当前目录
rsync -avz root@192.168.163.130:/root/7.txt ./
执行过程中需要192.168.163.130/root用户的密码

推送本机信息到远程虚拟机

Push: rsync [OPTION...] SRC... [USER@]HOST:DEST
push: 推送
rsync: 命令
-avz: 参数选项
SRC: 文件/文件的位置/目录
USER@ 用户名
HOST: ip地址主机名称 域名
DEST: 目标位置

案例2

#将本地a/b/c.txt文件夹及文件推送到192.168.163.80虚拟机中
mkdir -p a/b && touch a/b/c.txt
rsync -avz a root@192.168.163.80:/opt/

# 显示如下信息,上述命令完成
sending incremental file list
a/
a/b/
a/b/c.txt

sent 151 bytes received 47 bytes 30.46 bytes/sec
total size is 0 speedup is 0.00

小结

下载 远程服务器在前面

rsync -avz root@192.168.163.80:/etc/hosts .

上传: 远程服务器在后面 文件在前面

rsync -avz a/b root@192.168.163.80:/opt/

rsync结束SSH同步数据的缺陷

  • 使用系统用户不安全
  • 使用普通用户导致权限不足情况
  • 3. 守护进程模式(rsync 服务端)

    • 适用于服务器部署 rsync 服务,供多个客户端访问(例如做备份服务器)

    客户端可以访问方式:

    rsync user@server::modulename

    客户端:192.168.163.130

    服务端:192.168.163.130

    服务端负责「建用户、配密码、开共享」,客户端负责「连服务端、传数据」


    四、rsync 服务端配置(rsyncd 模式)

    1. 创建配置文件 /etc/rsyncd.conf

    #配置服务
    [root@backup ~]#cat /etc/rsyncd.conf

    uid = rsync#运行进程的用户
    gid = rsync#运行进程的用户组
    port = 873#监听端口
    fake super = yes#无需让rsync以root用户的身份运行,允许接收文件的完整属性
    use chroot = no#禁锢推送的数据至某个目录,不允许跳出改目录
    max connections = 200#最大连接数
    timeout = 600#超时时间
    ignore errors#忽略错误信息
    read only = false#对备份数据可读写
    list = false#不允许查看模块信息
    auth users = rsync_backup#定义虚拟用户,作为连接认证的用户
    secrets file = /etc/rsync.passwd#定义rsync服务用户连接认证密码文件路径
    log file = /var/log/rsyncd.log#

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

    2.根据配置文件创建必要的数据

    #1)创建rsync虚拟用户
    [root@backup ~]useradd -M -s /sbin/nologin rsync
    [root@backup ~]id rsync
    uid=1001(rsync) gid=1001(rsync) groups=1001(rsync)

    #2)创建密码文件
    [root@backup ~]vim /etc/rsync.passwd
    rsync_backup:123456

    #3)修改密码权限为600
    [root@backup ~]chmod 600 /etc/rsync.passwd
    [root@backup ~]ll /etc/rsync.passwd
    -rw——- 1 root root 20 Apr 8 11:54 /etc/rsync.passwd

    #4)创建backup目录
    [root@backup ~]mkdir /backup
    [root@backup ~]ll -d /backup
    drwxr-xr-x 2 root root 6 Apr 8 11:55 /backup

    #修改目录的权限为rsync用户
    [root@backup ~]ll -d /backup
    drwxr-xr-x 2 root root 6 Apr 8 11:55 /backup
    [root@backup ~]chown rsync.rsync /backup
    [root@backup ~]ll -d /backup
    drwxr-xr-x 2 rsync rsync 6 Apr 8 11:55 /backup

    3.启动服务并加入开机自启

    [root@backup ~]#systemctl start rsyncd

    [root@backup ~]#systemctl enable rsyncd

    4.测试检查 873端口

    [root@backup ~]#netstat -tnulp


    五、实际案例:备份网站数据到远程服务器

    本地备份网站 /var/www/html 到远程服务器

    rsync -azv /var/www/html/ user@192.168.1.100:/backup/html/

    此命令的作用:

    • 压缩传输整个网站目录内容
    • 只同步变化的文件
    • 避免每次都全量复制,提高效率

    六、常用 rsync 命令总结

    命令含义
    rsync -avz src/ dest/ 同步本地目录
    rsync -avz src/ user@remote:/dest/ 本地 → 远程
    rsync -avz user@remote:/src/ dest/ 远程 → 本地
    rsync –delete 删除目标中源已删除的文件
    rsync -n 模拟执行(不实际同步)
    rsync -e ssh 指定使用 SSH 作为传输协议

    七、rsync 适合哪些运维场景?

    • 服务器间文件定期备份
    • Web 服务器部署代码同步
    • 自动化增量备份脚本
    • 日志文件集中备份
    • 跨机房/机架定时数据复制

    总结

    1.rsync 增量 全量

    2.rsync三种模式

    本地模式 了解类似cp命令 优于cp

    远程访问模式:

    推送: 将本地的推送到目标服务器

    rsync -avz a.txt root@172.16.1.7:/opt/

    拉取: 将目标服务器的b.txt 下载到本地当前目录

    rsync -avz root@172.16.1.7:/root/b.txt ./

    守护进程模式:

    服务端: 安装服务 配置服务 启动服务873

    配置文件中的重点:

    ​1.启动用户rsync 必须系统中存在的

    ​2.游戏账号rsync_backup

    ​3.游戏账号所在的文件 /etc/rsync.passwd 权限600

    rsync_backup:123456

    ​4.模块名称和文件上传的目录位置

    [hehe]
    path = /data
    rwxr-xr-x rsync rsync /data

    客户端

    推送: rsync -avz a.txt rsync_backup@172.16.1.41::hehe
    拉取: rsync -avz rsync_backup@172.16.1.41::hehe/a.txt ./

    赞(0)
    未经允许不得转载:网硕互联帮助中心 » rsync服务--学习笔记
    分享到: 更多 (0)

    评论 抢沙发

    评论前必须登录!