数据备份系列:Rsync 备份详解(一)

这篇具有很好参考价值的文章主要介绍了数据备份系列:Rsync 备份详解(一)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、Rsync 简介

1.1 Rsync 是一个远程增量文件备份软件工具

1.2 Rsync 的特性

  • 支持拷贝特殊文件,如连接文件、设备等。
  • 可以有排除指定文件或目录同步的功能,相当于打包命令 tar 的排除功能。
  • 可以做到保持原文件或目录的权限、时间、软硬链接、属主、组等所有属性均不改变(参数:–p)。
  • 可以实现增量同步,既只同步发生变化的数据,因此数据传输效率很高(tar -N)。
  • 可以使用 scp、rsh、ssh 等方式来配合传输文件(rsync 本身不对数据加密)。
  • 可以通过 socket(进程方式)传输文件和数据(服务端和客户端)。
  • 支持匿名的活认证(无需系统用户)的进程模式传输,可以实现方便安全的进行数据备份和镜像。

1.3 Rsync 的相关参数

-a                  #归档模式传输, 等于-tropgDl    -t -r -o -p -g -D -l
-r                  #递归传输目录及子目录,即目录下得所有目录都同样传输。
-p                  #保持文件权限
-o                  #保持文件属主信息
-g                  #保持文件属组信息
-t                  #保持文件时间信息
-l                  #保留软连接
-D                  #保持设备文件信息
-L                  #保留软连接指向的目标文件
-z                  #传输时进行压缩以提高效率
-v                  #详细模式输出, 打印速率, 文件数量等
-P                  #显示备份过程 + --partial
-e                  #使用的信道协议,指定替代 rsh 的 shell 程序
-n			        #显示那些将要传输的文件,并不真正传输
--exclude=PATTERN   #指定排除不需要传输的文件
--exclude-from=file #排除不需要的文件
--include=PATTERN
--include-from=file
--bwlimit=100       #限速传输,单位 MB
--partial           #断点续传
--existing          #仅仅更新那些已经存在于 DST 的文件,而不备份那些新创建的文件
--delete            #删除那些 DST 中 SRC 没有的文件
--force             #强制删除目录,即使不为空
--password-file=xxx #使用密码文件
--port              #指定端口传输

1.4 Rsync 常见的使用场景

  • 定时同步:Rsync + Cron
  • 实时同步:Rsync + Innotify

1.5 Rsync 常见的传输模式

(1) 本地传输

格式:
    rsync [参数] [源路径] [目的路径]

参数:
    -t    #保持文件时间信息
    -r    #递归传输

示例:
    1.将 /opt/test.tar.gz 备份至 /backup 目录下:rsync /opt/test.tar.gz /backup
    2.将 /var/log 目录备份至 /backup/log 目录下:rsync -r /var/log/ /backup/log/

(2) 远程传输

1.常规远程模式
格式:
    rsync [参数] [本地源路径] [用户]@[ip]:[远程目的路径]


示例:
    (1).上传数据:
    将 /opt/test.tar.gz 上传目标服务器的 /backup 目录下:
        rsync /opt/test.tar.gz root@ip:/backup
    (2).下载数据:
    将目标服务器 /opt/test.tar.gz 下载到 /backup 目录下:
        rsync root@ip:/opt/test.tar.gz /backup

2.守护进程模式
    即 以守护进程的模式运行服务端
    优点:(1)保证数据安全、(2)数据归档

二、Rsync 的搭建部署

2.1 资源准备

服务器 IP 地址 操作系统 作用
目标服务器 192.168.0.162 Centos7 服务端
目标服务器 192.168.0.163 WinServer 服务端
源服务器 192.168.0.164 Centos7 客户端
源服务器 192.168.0.165 WinServer 客户端

        说明:本次配置实验分两部分:

        (1)linux 作为服务端(目标服务器),linux + windows 作为客户端

        (2)windows 作为服务端(目标服务器),linux + windows 作为客户端

2.2 以 linux 作为服务端

2.2.1 linux 服务端进行配置

        Linux 服务端:192.168.0.162

(1)服务安装

#服务端安装 Rsync 服务
[root@rsync162 ~]# yum install -y rsync

(2)配置 rsync 配置文件

[root@rsync162 ~]# vi /etc/rsyncd.conf
#rsync 服务端口
port=9999
#rsync 日志文件
log file = /var/log/rsync.log
#rsync 进程 id 文件
pid file = /var/run/rsyncd.pid
#同步模块项目
[proname]
#同步的目标目录
path = /backup
#同步传输前是否切换到指定目录下(用于增强传输的安全性)
use chroot = yes
#最大连接数
max connections = 4
#只读文件是否同步,yes表示无法同步只读文件
read only = no
#客户端请求显示模块列表是,是否显示该模块
list = true
#服务运行的用户
uid = root
#服务运行的用户组
gid = root
#进行验证的用户,即客户端进行传输时的用户
auth users = test
#连接时的用户和密码信息
secrets file=/etc/rsyncd.passwd
#允许的 ip
hosts allow = *

(3)创建测试用户及配置密码文件

[root@rsync162 ~]# useradd test
[root@rsync162 ~]# passwd test
更改用户 test 的密码 。
新的 密码:
无效的密码: 密码包含用户名在某些地方
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
[root@rsync162 ~]# 
[root@rsync162 ~]# 
[root@rsync162 ~]# vi /etc/rsyncd.passwd
test:test123456

(3)目标文件夹创建与授权

#创建备份目录
[root@rsync162 ~]# mkdir /backup
[root@rsync162 ~]# chown test:test /backup

(4)启动 rysnc 服务并开放端口

#先关闭 selinux
[root@rsync162 ~]# setenforce 0
#启动 rsync 服务
[root@rsync162 ~]# systemctl start rsyncd
#查看服务状态
[root@rsync162 ~]# netstat -tunlp |grep 9999
tcp        0      0 0.0.0.0:9999            0.0.0.0:*               LISTEN      30129/rsync         
tcp6       0      0 :::9999                 :::*                    LISTEN      30129/rsync
#防火墙开放端口
[root@rsync162 ~]# firewall-cmd --permanent --add-port=9999/tcp
success
[root@rsync162 ~]# firewall-cmd --reload
success

(5)设置开机自启

[root@rsync162 ~]# systemctl enable rsyncd
Created symlink from /etc/systemd/system/multi-user.target.wants/rsyncd.service to /usr/lib/systemd/system/rsyncd.service

2.2.2 以 windows 作为客户端

        Windows 客户端:192.168.0.165

(1)下载客户端:

        官网下载安装文件:https://www.itefix.net/cwrsync

        这边实验版本为:5.4.1 (文件最后会提供下载,若官网无法下载可参考使用)

数据备份系列:Rsync 备份详解(一)

(2)在 windows 客户端目录下创建 passwd.txt 文件,并配置同服务端的 /etc/rsyncd.passwd 密码相一致,不同的是客户端不需要加上用户名(这里的密码,可以同 test 系统用户密码一样,也可以不一样,总之就是服务端和客户端要一致即可)

数据备份系列:Rsync 备份详解(一)

(3)测试客户端传输文件 (这里的 passwd.txt 和 windows.zip.gz 都在当前目录下)

C:\soft\cwRsync_5.4.1_x86_Free>.\rsync.exe -avzP --password-file=passwd.txt --port=9999 windows.zip.gz test@192.168.0.162::proname

数据备份系列:Rsync 备份详解(一)

(4)在服务器上查看接收到的文件

[root@localhost ~]# ll /backup/
总用量 20424
-rwx------. 1 root 401 20913856 3月  20 15:52 windows.zip.gz

(5)测试客户端传输目录

C:\soft\cwRsync_5.4.1_x86_Free>.\rsync.exe -avzP --password-file=passwd.txt --po
rt=9999 windows_test test@192.168.0.162::proname

数据备份系列:Rsync 备份详解(一)

 (6)在服务器上查看接收到的目录和文件

[root@rsync162 ~]# ll /backup/
总用量 20424
drwx------. 2 root 401      106 4月  23 2023 windows_test
-rwx------. 1 root 401 20913856 3月  20 15:52 windows.zip.gz
[root@rsync162 ~]# ll /backup/windows_test/
总用量 23684
-rwx------. 1 root 401      284 3月  20 17:29 cc.txt
-rwx------. 1 root 401  3328826 4月  13 17:09 cwRsync_5.4.1_XiaZaiBa.zip
-rwx------. 1 root 401 20913856 3月  20 15:52 windows.zip.gz
-rwx------. 1 root 401      286 4月   3 13:10 新建文本文档.txt

(7)测试从服务端同步数据到客户端

#这里我把目录 windows_test 重命名为 server_test
[root@rsync162 ~]# mv /backup/windows_test /backup/server_test
#在windows的执行文件目录下创建了 from_server 文件夹
#C:\soft\cwRsync_5.4.1_x86_Free\from_server
C:\soft\cwRsync_5.4.1_x86_Free>.\rsync.exe -avzP --password-file=passwd.txt --port=9999 test@192.168.0.162::proname from_server

(8)在客户端中新建的 from_server 文件夹下可以看到已经接收到数据

数据备份系列:Rsync 备份详解(一)

(9)如果要使用绝对路径

# /cygdrive/c/ 代表 C 盘目录
C:\soft\cwRsync_5.4.1_x86_Free>.\rsync.exe -avzP --password-file=passwd.txt --port=9999 test@192.168.0.162::proname /cygdrive/c/soft/cwRsync_5.4.1_x86_Free/from_server

#不能使用如下路径
C:\soft\cwRsync_5.4.1_x86_Free\from_server

 2.2.3 以 Linux 作为客户端

        Linux 客户端:192.168.0.164

(1)客户端安装 rsync 服务

#客户端安装 Rsync 服务
[root@rsync164 ~]# yum install -y rsync

(2)Linux 客户端以常规远程方式传输数据文件测试(不同于 windows 客户端,linux 客户端可以直接使用常规的远程模式进行数据同步,其用法和 scp 命令相似)

#客户端测试传输文件
[root@rsync164 ~]# rsync -avz linux.tar.gz root@192.168.0.162:/backup
root@192.168.0.162's password: 
sending incremental file list
linux.tar.gz

sent 2,465,340 bytes  received 35 bytes  182,620.37 bytes/sec
total size is 2,465,302  speedup is 1.00

#服务端查看文件
[root@rsync162 ~]# ll /backup/
总用量 2408
-rw-r--r--. 1 root root 2465302 4月  13 22:29 linux.tar.gz

(3)Linux 客户端以守护进程方式传输数据文件测试(服务端在上面已经以守护进程模式启动了服务,所以这里测试我们只需要在 linux 客户端上做配置)

#创建密码文件
[root@rsync164 ~]# vi /etc/rsync.pass
test123456

#传输测试
[root@rsync164 ~]# rsync -avz --port 9999 --password-file /etc/rsync.pass linux.tar.gz  test@192.168.0.162::proname
ERROR: password file must not be other-accessible

#修改文件权限
[root@rsync164 ~]# chmod 600 /etc/rsync.pass 

#重新测试
[root@rsync164 ~]# rsync -avz --port 9999 --password-file /etc/rsync.pass linux.tar.gz  test@192.168.0.162::proname      
sending incremental file list
linux.tar.gz

sent 2,465,341 bytes  received 35 bytes  234,797.71 bytes/sec
total size is 2,465,302  speedup is 1.00

#服务端查看接收的文件
[root@rsync162 ~]# ll /backup/
总用量 22832
-rw-r--r--. 1 root root  2465302 4月  13 22:29 linux.tar.gz

2.3 以 Windows 作为服务端

        Windows 服务端版本使用 4.1.0 版本(文件最后会提供下载)

数据备份系列:Rsync 备份详解(一)

 2.3.1 服务端安装与配置

        Windows 服务端:192.168.0.163

(1)双击服务进行安装,服务用户可以用默认的,建议是自己定义

数据备份系列:Rsync 备份详解(一)

(2)安装即可,默认安装位置在:C:\Program Files (x86)\ICW\

(3)安装完成之后,系统会自动多出一个 rsync 用户、服务中会多出一个 RsyncServer的服务(注意:如果两者都没有,可能是没有用管理员模式运行安装软件的缘故,如果也用了但是没有生成用户和服务,那么请手动创建系统用户,账户和密码同步骤(1)的要保持一致)

数据备份系列:Rsync 备份详解(一)

 (4)将 RsyncServer 服务的启动类型改为自动并启动服务数据备份系列:Rsync 备份详解(一)

(5)新建一个数据同步目录data(自己定义及选择位置)

数据备份系列:Rsync 备份详解(一)

 (6)将目录权限提供给rsync用户

数据备份系列:Rsync 备份详解(一)

(7)编辑配置文件:C:\Program Files (x86)\ICW\rsyncd.conf 内容如下

数据备份系列:Rsync 备份详解(一)

(8)编辑密码文件:C:\Program Files (x86)\ICW\etc\rsyncd.secrets

数据备份系列:Rsync 备份详解(一)

(9)重启 rsyncd 服务

(10)关闭防火墙或开启rsync默认端口 tcp:873(因为配置文件没有配置服务端口,所以要开放默认的端口)

2.3.2 windows 客户端

        Windows 客户端:192.168.0.165

(1)在 windows 客户端测试机上进行测试

#测试传输数据
C:\soft\cwRsync_5.4.1_x86_Free>.\rsync.exe -avzP --password-file=passwd.txt windows.log test@192.168.0.163::proname
sending incremental file list
windows.log
          5,291 100%    0.00kB/s    0:00:00 (xfr#1, to-chk=0/1)

sent 2,457 bytes  received 34 bytes  383.23 bytes/sec
total size is 5,291  speedup is 2.12

(2)在服务端数据目录查看

数据备份系列:Rsync 备份详解(一)

 2.3.3 linux 客户端

        Linux 客户端:192.168.0.164

(1)在 linux 客户端测试机上进行测试

#测试传输数据
[root@rsync164 ~]# rsync -avz --password-file /etc/rsync.pass linux.log test@192.168.0.163::proname
sending incremental file list
linux.log

sent 512 bytes  received 34 bytes  99.27 bytes/sec
total size is 712  speedup is 1.30

(2)在服务端数据目录查看

数据备份系列:Rsync 备份详解(一)文章来源地址https://www.toymoban.com/news/detail-428227.html

2.4 几个常见的错误点

#日志 /var/log/rsyncd.log

#错误一:
auth failed on module proname from WIN-NEQ2FNHO1US (192.168.0.165) for root: no secrets file
# 错误一重点查看 /etc/rsyncd.conf 配置是否有问题,配置中的路径文件是否存在,权限是否正确,比如 /etc/rsyncd.passwd 文件的权限是 600;又比如


#错误二:
auth failed on module proname from WIN-NEQ2FNHO1US (192.168.0.165) for test: no matching rule
#错误二通常是由于客户端配置的密码和服务端配置的密码不一致导致,又或者服务端不存在该用户(用户一定要存在)


#错误三:
ERROR: password file must not be other-accessible
#错误三通常是客户端报出来的错误,即 linux 客户端 的 passwd 文件权限要修改为 600

到了这里,关于数据备份系列:Rsync 备份详解(一)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • mysql 数据备份与恢复使用详解

    对一个运行中的线上系统来说,定期对数据库进行备份是非常重要的,备份不仅可以确保数据的局部完整性,一定程度上也为数据安全性提供了保障,设想如果某种极端的场景下,比如磁盘损坏导致某个时间段数据丢失,或者误操作导致数据表数据被删等... 这种情况在现实中

    2024年02月08日
    浏览(43)
  • 跨平台数据备份工具之restic详解

    Restic 是一款 GO 语言开发的开源免费且快速、高效和安全的跨平台备份工具。Restic 使用加密技术来保证你的数据安全性和完整性,可以将本地数据加密后传输到指定的存储。 Restic 同样支持增量备份,可随时备份和恢复备份。Restic 支持大多数主流操作系统,比如:Linux、macO

    2024年02月21日
    浏览(40)
  • 保护你无价的数据 | 推荐一个开源备份工具,可去重、增量、压缩、还原到特定日期...

    Borg 的优势是 高效: BorgBackup 会将文件按数据块去重,只有改动的数据块才会被备份。 一个 25 GiB 的虚拟机磁盘文件,只改动了 1 GiB,那就只会新增备份这 1 GiB 的数据; 高速: 核心算法使用 C 编译,使用缓存快速跳过未改动过的文件以加快备份速度; 加密: 数据默认是

    2024年02月05日
    浏览(39)
  • 【Linux】Rsync远程同步及备份工具(Rsync简介、Rsync安装、rsync认证方式)

    rsync(Remote synchronization)是Liunx/Unix下的一个 远程数据同步工具 。 它可通过LAN/WAN(局域网/广域网) 快速同步多台主机间的文件和目录 ,并适当利用rsync算法(差分编码)以减少数据的传输。 rsync算法并不是每一次都整份传输,而是 只传输两个文件的不同部分 ,因此其传输

    2024年02月13日
    浏览(24)
  • 【MySQL】数据备份(导出数据 / 导入数据)

     SELECT...INTO OUTFILE 是 MySQL 用于导出数据的语句,它允许将查询结果保存到指定的文件中。 该语句的基本语法如下:   column1, column2, ... :要导出的列名。 INTO OUTFILE \\\'file_path\\\' :指定导出数据时要保存到的文件路径。 FIELDS TERMINATED BY \\\'field_separator\\\' :指定字段之间的分隔符,默认

    2024年02月12日
    浏览(29)
  • 微信新旧手机聊天数据备份迁移&pc端微信数据备份迁移至手机

    我相信,微信这个app已经深入大家的工作生活了,微信的数据日积月累肯定是相当大的,而我们的电子产品(手机)的更新迭代相当频繁,新的手机如何将旧手机的微信数据迁移过来呢?阅读这篇博文,你将深入了解2种迁移方案,以后妈妈再也不怕我新手机没有微信聊天数据

    2024年04月15日
    浏览(24)
  • 小米路由器数据备份Mac备份使用教程

    小米的路由已经正式开放购买,支持 Mac OS 的 Time Machine 备份。对于苹果 Mac 电脑用户而言,可以借助小米的存储服务器功能,把电脑中的数据通过网络备份到小米路由器上。下面简单介绍下怎么在 Mac 上用小米路由器来备份的操作方法。 首先当然是要让自己的 Mac 电脑接入小

    2024年02月07日
    浏览(32)
  • 苹果手机怎么备份所有数据?2023年iPhone 15数据备份常用的3种方法!

    当苹果手机需要进行刷机、恢复出厂设置、降级iOS系统等操作时,我们需要将自己的 iPhone数据提前进行备份 。 特别是在苹果发布新iOS系统时,总有一些小伙伴因为升降级系统,而导致了 重要数据的丢失 。 iPhone中储存着重要的照片、通讯录、文件等数据,建议 定期进行数据

    2024年02月07日
    浏览(35)
  • sql数据库怎么备份,sql 实时备份

    在当今互联网时代,数据已经成为企业的核心资产。然而,数据的安全性和完整性面临硬件问题、软件故障、人工操作错误等各种威胁。为了保证数据的安全,实时备份已经成为公司必须采取的重要措施之一。下面我们就重点介绍SQL实时备份的重要实施方法。 SQL实时备份的必

    2024年02月10日
    浏览(44)
  • DigitalOcean 数据备份技术架构升级,并提供每日自动备份功能

    据统计,目前全有超过60%的中小企业数据存储在公有云中。但是,数据量和生成数据的速度都在以惊人的速度增长,这意味着中小企业比以前更需要防范数据中断带来的风险。 备份是每个企业数据保护策略的关键一环。DigitalOcean 备份是由 Droplet (DigitalOcean 的 VPS 产品)磁盘

    2024年03月21日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包