【二】rsync远程数据同步

前言

  • 实验目的: rsync可以在不同主机之间进行远程同步,可实现全量备份与增量备份。
  • 实验准备: 两台主机,一台是rsync服务端,一台是rsync客户端,这里使用内网IP
主机外网IP(nat)内网IP(lan)
rsync客户端10.0.0. 200172.16.1.200
rsync服务端10.0.0.201172.16.1.201
  • 实现方式: 下面演示的是守护进程的数据传输方式,因为比较安全。
rsync数据传输方式通俗理解
本地传输类似于使用cp命令
远程传输通过网络传输 a–>b
守护进程运行一个服务一直在后台

1. rsync服务端配置

  • 安装rsync: yum -y install rsync
  • 修改配置文件: vim /etc/rsyncd.conf
uid = rsync
gid = rsync
port = 873
fake super = yes
use chroot = no
max connections = 200
timeout = 600
ignore errors
read only = false
list = false
auth users = rsync_backup
secrets file = /etc/rsync.passwd
log file = /var/log/rsyncd.log
#####################################
[backup]
path = /backup
  • 给虚拟用户创建密码文件, 并修改目录的权限。这个对应配置文件--> secrets file = /etc/rsync.passwd
    • echo "rsync_backup:123456" > /etc/rsync.passwd
    • chmod 600 /etc/rsync.passwd
  • 创建对应配置文件中uid=rsync的用户,创建[backup]模块下存储的目录/backup,并设置目录的所有者为rsync。
    • useradd rsync -M -s /sbin/nologin
    • mkdir /backup
    • chown -R rsync.rsync /backup/
  • 启动rsync服务并加入开机自启动,检查rsync的873端口是否存在
    • systemctl start rsyncd.service 启动服务
    • systemctl enable rsyncd 开机自启
    • netstat -lntp(或者systemctl status rsyncd

2. rsync客户端配置

安装rsync: yum -y install rsync

3. 开始实验

本地传输和远程传输用的不多,重点学习的是守护进程的方式进行数据同步配置,rsync服务端的配置就是使用守护进程的方式做准备。

3.1 本地传输

在rsync客户端进行实验

  • 把当前目录下的test.txt文,备份到/opt目录下
    • rsync -avz ./test.txt /opt/

3.2 远程传输

  • 将本地的/etc/passwd文件,推送到172.16.1.201服务器的/tmp目录下,使用的是201的root用户身份

    • rsync -avz /etc/passwd root@172.16.1.201:/tmp
  • 本地客户端下载172.16.1.201服务器/etc/services这个文件,至本地当前目录下,使用的是201的系统用户root身份

    • rsync -avz root@172.16.1.201:/etc/services ./
  • Rsync借助SSH协议同步数据存在的缺陷(临时发送数据)

    • 使用系统用户(不安全)
    • 使用普通用户(会导致权限不足情况)

3.3 守护进程

3.3.1 客户端上传下载文件

客户端推送(上传文件)

  • 推送/etc这个目录
    • rsync -avz /etc rsync_backup@172.16.1.41::backup
  • #推送/etc/下面的内容
    • rsync -avz /etc/ rsync_backup@172.16.1.41::backup

客户端拉取(下载文件)

  • 拉取服务端172.16.1.41的backup目录下面的所有内容至本地的 /opt目录
    • rsync -avz rsync_backup@172.16.1.41::backup /opt
3.3.2 客户端与服务端无差异同步

--delete实现无差异同步

  • 推送方式实现无差异,以客户端为准,客户端有什么服务端就有什么
    • rsync -avz --delete /root rsync_backup@172.16.1.201::backup
  • 拉取方式实现无差异,以服务端为准,服务端有什么客户端就有什么
    • rsync -avz --delete rsync_backup@172.16.1.201::backup /opt/
3.3.3 对传输进行限速

--bwlimit实现限速

  • 生成大文件
    • dd if=/dev/zero of=./size.disk bs=1M count=500
  • 上传文件的速度限制为1M
    • rsync -avzP --bwlimit=1 ./size.disk rsync_backup@172.16.1.41::backup
3.3.4 免密连接

取消每次连接时输入密码,有两种方法。
免密登录:告诉客户端,文件从哪里找

  • 在客户端创建一个密码文件/etc/rsync.pass,在里面输入密码。
    • echo "123456" > /etc/rsync.pass
    • chmod 600 /etc/rsync.pass
    • rsync -avz /opt/ rsync_backup@172.16.1.201::backup --password-file=/etc/rsync.pass
  • 写Shell脚本,将下面的两个语句写入脚本中,执行脚本就可以了。
    • export RSYNC_PASSWORD=123456
    • rsync -avz /opt/ rsync_backup@172.16.1.41::backup

3.3.5 选项参数的作用

-a       #归档模式传输, 等于-tropgDl
-v       #详细模式输出, 打印速率, 文件数量等
-z       #传输时进行压缩以提高效率
-r       #递归传输目录及子目录,即目录下得所有目录都同样传输。
-t       #保持文件时间信息
-o       #保持文件属主信息
-p       #保持文件权限
-g       #保持文件属组信息
-l       #保留软连接
-P       #显示同步的过程及传输时的进度等信息
-D       #保持设备文件信息
-L       #保留软连接指向的目标文件
-e       #使用的信道协议,指定替代rsh的shell程序  ssh
--exclude=PATTERN    #指定排除不需要传输的文件模式
--exclude-from=file  #文件名所在的目录文件
--bwlimit=100        #限速传输                         ------常用
--partial            #断点续传
--delete             #让目标目录和源目录数据保持一致  ----常用

4. 小总结

  • 这个实验的难点就是要分清rsync_backup和rsync用户各自的作用是什么,因为这个实验基本上都是围绕他两个在进行,这个搞清楚了,这个实验就非常简单了。
    • rsync_backup:客户端通过该虚拟用户连接rsync服务,是一个虚拟用户,由服务端的配置文件中定义【auth users】,通常存放在指定的一个文件中,该文件也是有服务端配置文件定义【secrets file】。 rsync_backup:用于提供给客户端远程连接
    • rsync:【模块对应的目录,必须授权为配置文件中定义的uid和gid的用户】
      用于运行rsync服务时需要使用到的系统用户,rsync这个普通用户是运行rsync进程的,用于将接收到的数据以自己的身份写入到对应的目录中。 rsync:是否往本地服务器写入客户端推送过来的数据


详细过程:
在这里插入图片描述

  • 总之在连接之前由两个重要的步骤,是前提条件:
    (1)为虚拟用户rsync_backup创建了密码文件,文件的权限是600
    (2) 创建rsync系统用户,并把backup模块下的目录授权给rsync用户(所有者、所属组),
  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值