Linux   发布时间:2022-03-31  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Rsync服务大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

目录 Rsync服务 Rsync rsync 简介 Rsync的特性 生产场景架构集群备份方案 备份的类型 rsync的应用场景 Rync的数据同步模式 rsync的三种模式 1. 本地方式 2.远程传输方式 3.守护进程传输方式 服务端配置 客户端配置 rsync实战 实战一 报错解决方法: Rsync服务 Rsync rsync是一款开源、快速、多功能、可实现全量及增量的本地或远程数据同步备份

Rsync服务

Rsync

rsync是一款开源、快速、多功能、可实现全量及增量的本地或远程数据同步备份的优秀工具。rsync软件适用于Unix/linux/Windows等多种操作系统平台。

rsync 简介

rsync英文称为remote synchronizetion,从软件的名称可以看出来,rsync具有可使本地和远程两台主机之间的数据快速复制同步镜像、远程备份的功能,这个功能类似于ssh带的scp命令,但是又优于scp命令的功能,scp每次都是全量拷贝,而rsync可以增量拷贝。当然,rsync还可以在本地主机的不同分区或目录之间全量及曾量的复制数据,这又类似cp命令。但是同样也优于cp命令,cp每次都是全量拷贝,而rsync可以增量拷贝。

在同步数据的时候,认情况下,rsync通过其独特的“quick check”算法,它仅同步大小或者最后修改时间发生变化的文件或目录,当然也可根据权限、属主等属性的变化同步,但是需要制定相应的参数,甚至可以实现只同步一个文件里有变化的内容部分,所以,可是实现快速的同步备份数据。

rsync官方地址:TP

rsync监听端口:873

rsync运行模式:C/S

client/server

客户端/服务端

提示:利用rsync还可以实现删除文件和目录的功能,这又相当于rm命令,一个rsync相当于scp、cp、rm,但是还优于他们的每一个命令。

Rsync的特性

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

生产场景架构集群备份方案

1.借助cron+rsync把所有客户服务器数据同步到备份服务器。
2.针对公司重要数据备份混乱状况和领导提出备份全网数据的解决方案。
3.通过本地打包备份,然后rsync结合inotify应用把全网数统一备份到一个固定存储服务器,然后在存储服务器上通过脚本检查并报警管理员备份结果
4.定期将IDC机房的数据 备份公司的内部服务器,防止机房地震及火灾问题导致数据丢失。
5.实时同步,解决存储服务器等的单点问题。

备份的类型

rsync的应用场景

Rync的数据同步模式

  1. 推:所有主机推送本地数据至Rsync备份服务器,会导致数据同步缓慢(适合少量数据备份)

Rsync服务

  1. 拉: rsync备份服务端拉取所有主机上的数据,会导致备份服务器开销大

Rsync服务

  1. 大量数据备份场景

Rsync服务

  1. 异地备份

Rsync服务

rsync的三种模式

1. 本地方式

? 单个主机本地之间的数据传输(类似于cp命令)

? [[email protected] ~]# rsync /etc/b.txt /tmp/

#本地拷贝数据命令
Local:  rsync [OPTION...] SRC... [DEST]
    
#本地拷贝数据示例
[[email protected] ~]# rsync  -avz  /etc/passwd  /tmp/
rsync       #备份命令(cp)
[options]   #选项
SRC...      #本地源文件
[DEST]      #本地目标文件@H_16_197@ 

2.远程传输方式

通过ssh通道传输数据,(类似于scp命令)

Access via remote sHell:
#pull拉取数据命令
Pull: rsync [OPTION...] [[email protected]]HOST:SRC... [DEST]

#push推送数据命令
Push: rsync [OPTION...] SRC... [[email protected]]HOST:DEST@H_16_197@ 

rsync -avz [email protected]:/tmp ./

pull拉:
[[email protected] ~]# rsync -avz [email protected]:/tmp ./@H_16_197@ 

rysnc -avz /var [email protected]:/tmp/

push推:
[[email protected] ~]# rsync -avz /var [email protected]:/tmp/@H_16_197@ 

注意: rsync不管是推还是拉,推送目录的时候带/和不带/

? 1.带/ :/etc/ 将etc目录下的所有内容,推过去(拉过来)

? 2.不带/:/etc 将etc目录整体推过去(拉过来)

3.守护进程传输方式

rsync自身非常重要的功能(不使用系统用户,更加安全)

Access via rsync daemon:
Pull: rsync [OPTION...] [[email protected]]HOST::SRC... [DEST]

Push: rsync [OPTION...] SRC... [[email protected]]HOST::DEST
rsync -avz /data/ [email protected]::zls@H_16_197@ 

@H_262_233@
主机名 外网IP 内网IP 角色
BACkup 10.0.0.41 172.16.1.41 服务端
web01 10.0.0.7 172.16.1.7 客户端

服务端配置

1.服务端安装rsync

[[email protected] ~]# yum -y install rsync@H_16_197@ 

2.服务端,修改配置文件

[[email protected] ~]# vim /etc/rsyncd.conf
#用户名
uid = rsync
#用户组
gid = rsync
#端口
port = 873
#无需让rsync以root身份运行
fake super = yes
#禁锢目录,不允许操作指定目录之外的目录
use chroot = no
#最大连接数200
max connections = 200
#超时时间600s 10分钟
timeout = 600
#忽略错误
ignore errors
#关闭只读
read only = false
#不允许查看模块信息
list = false
#认证用户
auth users = rsync_BACkup
#认证用户的密码文件
secrets file = /etc/rsync.passwd
#日志文件
log file = /var/log/rsyncd.log
#####################################
#模块(任意名字都可以)
[zls]
#注释信息(无关紧要)
comment = welcome to oldboyedu BACkup!
#路径
path = /BACkup@H_16_197@ 

2.服务端(BACkup),创建用户,创建一个用来运行rsync服务的用户身份

#检查用户是否存在
[[email protected] ~]# id rsync
id: rsync: no such user

#创建用户(不允许登录,不创建家目录)
[[email protected] ~]# useradd rsync -s /sbin/nologin -M
-s:指定登录的sHell
-M:不创建家目录@H_16_197@ 

3.服务端,创建一个备份目录

[[email protected] ~]# mkdir /BACkup
#授权rsync用户
[@L_616_100@ ~]# chown -R rsync.rsync /BACkup/@H_16_197@ 

4.服务端,创建虚拟用户及密码文件

#创建用户名和密码文件
[[email protected] ~]# vim /etc/rsync.passwd
rsync_BACkup:123456
#授权
[[email protected] ~]# chmod 600 /etc/rsync.passwd@H_16_197@ 

5.服务端,启动rsync添加开机自启

[[email protected] ~]# ll /usr/lib/systemd/system/rsyncd.service 
-rw-r--r-- 1 root root 237 Apr 26 01:17 /usr/lib/systemd/system/rsyncd.service
#启动rsyncd守护进程
[[email protected] ~]# systemctl start rsyncd
#允许开机自启
[[email protected] ~]# systemctl enable rsyncd@H_16_197@ 

客户端配置

1.安装rsync

[[email protected] ~]# yum install -y rsync@H_16_197@ 

2.创建虚拟用户的密码文件

#创建用户密码文件
[[email protected] ~]# vim /etc/rsync.pass
123456
#授权
[[email protected] ~]# chmod 600 /etc/rsync.pass@H_16_197@ 

rsync实战

实战一

[[email protected] ~]# mkdir /data
[[email protected] ~]# cd /data
[[email protected] data]# touch file{1..100}
[[email protected] data]# ll@H_16_197@ 

推:

[[email protected] ~]# rsync -avz /data/ [email protected]::zls@H_16_197@ 

拉:

[[email protected] ~]# rsync -avz [email protected]::zls /root/@H_16_197@ 

非交互式:

[[email protected] data]# rsync -avz /data/ [email protected]::naonao --password-file=/etc/rsync.pass #密码文件@H_16_197@ 

报错解决方法

Rsync服务

  1. auth Failed on module [zls]
解决
1.客户端密码文件:600权限

2.服务端密码文件:600权限

3.客户端密码文件中,只写密码,不写用户

4.服务端密码文件中,用户:密码@H_16_197@ 
  1. 服务端的/BACkup目录权限不是 rsync

    Rsync服务

chown -R rsync.rsync /BACkup@H_16_197@ 

认证失败:

1.先检查配置文件:服务端:/etc/rsyncd.conf

[模块]

2.检查服务端,/etc/rsync.passwd文件的权限是不是600

3.再检查服务端,/etc/rsync.passwd文件内容,是不是 用户名:密码

rsyncd.conf 里的 rsync_BACkup

4.再检查客户端,/etc/rsync.pass 权限600

5./etc/rsync.pass 内容只写密码

6.修改配置文件要重启服务,[BACkup] [zls]

systemctl restart rsyncd@H_16_197@ 
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]
comment = welcome to oldboyedu BACkup!
path = /BACkup@H_16_197@
        

大佬总结

以上是大佬教程为你收集整理的Rsync服务全部内容,希望文章能够帮你解决Rsync服务所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签:rsync服务