CentOS7下rsync备份详解

一、rsync介绍

Rsync是一款功能强大的数据同步工具,它可以在本地或者网络之间进行文件同步。Rsync是一个开源软件,可以跨平台运行,并且支持文件压缩传输,只传输不同之处,同时可以保留文件权限、时间戳等信息。rsync 支持 ssh,rsh,直接使用 socket 方式进行传输,同时支持许多过滤规则与操作,如:压缩传输、删除已被删除文件、删除目录等等,比起传统的scp,rsync的效率较高,压缩协议可提高网络带宽使用率。

二、rsync特点

1、速度快:rsync采用特有的算法对目标项与本地项的比较结果进行最小化处理。每一次同步操作,只会对两端不同的地方进行备份。rsync的独有算法可以让同步速度达到惊人的快速。rsync在数据超过多个G的情况下,不开启压缩传输,传输速度远比scp快。

2、支持备份文件的权限、时间、链接、设备文件等资源属性:这是rsync的另一个亮点。rsync支持defalut、archive、link、copy、copy-devices、hard-links、verbose等属性设置,使得备份文件几乎跟原件没有什么区别,而其他备份工具一般只能做到数据的同步,无法反映原件属性。

3、支持删除对方已经删除的文件:这也是rsync其他备份工具的一大优势。rsync支持–delete选项,能删除对方端已经删除的文件,很好地维护了文件的一致性。

三、rsync使用步骤

1、安装rsync。在centos7中,rsync工具默认安装,可以通过以下命令验证是否安装:

rsync --version

2、rsync使用示例。

(1)基本命令

rsync [options] source destination

(2)实战示例:同步远程文件夹到本地

rsync -vzrtopg --exclude "*.log" --exclude "*.bak" --progress -e "ssh -p 22" root@192.168.1.1:/usr/local/src /home/rsync

参数含义:

-v:详细模式输出

-z:使用压缩模式传输文件

-r:递归同步子目录

-t:保持文件时间属性

-o:保持文件属主属性

-p:保持文件权限属性

-g:保持文件属组属性

–exclude:过滤传输文件,忽略指定文件类型

–progress:传输进度条

-e:传输加密协议

四、rsync常用命令选项

1、指定输出信息到文件或tty输出

rsync [options] source destination > logfile 2>&1

2、同步本地目录

rsync -vzrtopg --exclude "*.log" --exclude "*.bak" --progress /usr/local/src /home/rsync

3、同步本地目录到远程主机

rsync -vzrtopg --exclude "*.log" --exclude "*.bak" --progress /usr/local/src root@192.168.1.1:/home/rsync

4、同步远程主机的目录到本地

rsync -vzrtopg --exclude "*.log" --exclude "*.bak" --progress root@192.168.1.1:/usr/local/src /home/rsync

5、同步本地目录到远程主机(加密传输,指定端口)

rsync -vzrtopg --exclude "*.log" --exclude "*.bak" --progress -e "ssh -p 22" /usr/local/src root@192.168.1.1:/home/rsync

五、rsync安全性设置

为了保证rsync数据传输过程中的安全性,我们可以定制化rsync的参数。可以设置密码或是在生成ssh key的基础上增加密钥验证,如下:

1、添加rsync用户
useradd rsync -s /bin/false
passwd rsync
2、生成key
ssh-keygen -t rsa
3、指定rsync客户端IP
vim /etc/rsyncd.conf
[module]
        path = /data
        comment = just for testing
        uid = nobody
        gid = nobody
        read only = no
        auth users = rsync
        secrets file = /etc/rsyncd.passwd
        hosts allow = 192.168.1.27
4、修改rsync用户权限
chmod 600 /etc/rsyncd.passwd
5、设置rsync用户密码
rsync rsync:2001:backup
6、重新加载配置文件
rsync --daemon --port=873
7、设置root用户的秘钥认证
ssh-keygen -t rsa
ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.1.30
8、备份远程机器文件到本地
rsync -vzrtopg --delete -e ssh root@192.168.1.30:/data/ /data_backup/

六、rsync常见错误及解决方法

1、Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).

解决方法:确认是否开启root用户密码认证

2、rsync error: error in rsync protocol data stream (code 12) at io.c(226)

解决方法:确认远程服务器的AllowTcpForwarding是否为yes状态;修改/etc/ssh/sshd_config文件内容:AllowTcpForwarding yes

3、rsync error: error starting client-server protocol (code 5) at main.c(1503) [sender=3.0.9]

解决方法:修改/etc/ssh/sshd_config文件内容:PermitRootLogin yes 和 RSAAuthentication yes

以上是CentOS7下rsync备份详解,使用rsync进行数据备份,可以更有效、更安全的管理系统数据,尤其在生产环境下,使用rsync完成数据迁移和备份工作是一个不错的选择。

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/301201.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-12-30 16:08
下一篇 2024-12-30 16:08

相关推荐

  • 用什么来备份 ssbackup 文件?

    SSBackup是一种用于存储数据的文件格式,可以在Snapshots和Debian GNU / Linux系统上使用。备份文件是大多数用户和数据中心管理员的关键需求。通过备份,可…

    编程 2025-04-27
  • Linux sync详解

    一、sync概述 sync是Linux中一个非常重要的命令,它可以将文件系统缓存中的内容,强制写入磁盘中。在执行sync之前,所有的文件系统更新将不会立即写入磁盘,而是先缓存在内存…

    编程 2025-04-25
  • 神经网络代码详解

    神经网络作为一种人工智能技术,被广泛应用于语音识别、图像识别、自然语言处理等领域。而神经网络的模型编写,离不开代码。本文将从多个方面详细阐述神经网络模型编写的代码技术。 一、神经网…

    编程 2025-04-25
  • Python安装OS库详解

    一、OS简介 OS库是Python标准库的一部分,它提供了跨平台的操作系统功能,使得Python可以进行文件操作、进程管理、环境变量读取等系统级操作。 OS库中包含了大量的文件和目…

    编程 2025-04-25
  • git config user.name的详解

    一、为什么要使用git config user.name? git是一个非常流行的分布式版本控制系统,很多程序员都会用到它。在使用git commit提交代码时,需要记录commi…

    编程 2025-04-25
  • Python输入输出详解

    一、文件读写 Python中文件的读写操作是必不可少的基本技能之一。读写文件分别使用open()函数中的’r’和’w’参数,读取文件…

    编程 2025-04-25
  • MPU6050工作原理详解

    一、什么是MPU6050 MPU6050是一种六轴惯性传感器,能够同时测量加速度和角速度。它由三个传感器组成:一个三轴加速度计和一个三轴陀螺仪。这个组合提供了非常精细的姿态解算,其…

    编程 2025-04-25
  • Java BigDecimal 精度详解

    一、基础概念 Java BigDecimal 是一个用于高精度计算的类。普通的 double 或 float 类型只能精确表示有限的数字,而对于需要高精度计算的场景,BigDeci…

    编程 2025-04-25
  • Linux修改文件名命令详解

    在Linux系统中,修改文件名是一个很常见的操作。Linux提供了多种方式来修改文件名,这篇文章将介绍Linux修改文件名的详细操作。 一、mv命令 mv命令是Linux下的常用命…

    编程 2025-04-25
  • 详解eclipse设置

    一、安装与基础设置 1、下载eclipse并进行安装。 2、打开eclipse,选择对应的工作空间路径。 File -> Switch Workspace -> [选择…

    编程 2025-04-25

发表回复

登录后才能评论