Linux数据相关第1个服务_备份服务rsync

1、备份服务概述

备份服务:需要使用到脚本,打包备份,定时任务

备份服务:rsyncd 服务,不同主机之间数据传输

特点:

  • rsync是个服务也是命令
  • 使用方便,具有多种模式
  • 传输数据的时候是增量传输

增量与全量:

全量:无论多少数据全部推送走(scp -r)

增量:只会把 修改,新建 的文件传输走(rsync -avz)

bash 复制代码
#把/etc/目录传输到另一台机器的/tmp/下面
scp -r /test/ [email protected]:/tmp/
rsync -avz /test/ [email protected]:/tmp/

2、rsync企业应用场景

应用场景(业务场景)

应用场景(业务场景) 应用建议
rsync 作为命令使用 临时拉取,推送数据.未来这个需求可以通过scp命令实现.
定时备份:rsync 服务 + 定时任务 定时备份,定期备份案例.(定时任务进行备份+通过rsync传输备份)
实时同步:rsync 服务 + sersync/lsyncd 实现实时同步 解决存储服务单点问题
rsync服务与异地容灾 找一个异地的服务器存放备份

3、rsync使用模式

模式 应用场景
本地模式
远程模式 传输数据(临时使用可以使用scp替代)
rsync 守护进程模式(daemon) 传输数据(不需要密码),用于定时备份,定时同步.

4、推与拉

1、备份服务概述

备份服务:需要使用到脚本,打包备份,定时任务

备份服务:rsyncd 服务,不同主机之间数据传输

特点:

  • rsync是个服务也是命令
  • 使用方便,具有多种模式
  • 传输数据的时候是增量传输

增量与全量:

全量:无论多少数据全部推送走(scp -r)

增量:只会把 修改,新建 的文件传输走(rsync -avz)

bash 复制代码
#把/etc/目录传输到另一台机器的/tmp/下面
scp -r /test/ [email protected]:/tmp/
rsync -avz /test/ [email protected]:/tmp/

2、rsync企业应用场景

应用场景(业务场景)

应用场景(业务场景) 应用建议
rsync 作为命令使用 临时拉取,推送数据.未来这个需求可以通过scp命令实现.
定时备份:rsync 服务 + 定时任务 定时备份,定期备份案例.(定时任务进行备份+通过rsync传输备份)
实时同步:rsync 服务 + sersync/lsyncd 实现实时同步 解决存储服务单点问题
rsync服务与异地容灾 找一个异地的服务器存放备份

3、rsync使用模式

模式 应用场景
本地模式
远程模式 传输数据(临时使用可以使用scp替代)
rsync 守护进程模式(daemon) 传输数据(不需要密码),用于定时备份,定时同步.

4、推与拉

5、rsync本地模式

bash 复制代码
rsync -a /etc/ /tmp/ 
rsync -a /etc /tmp/

在rsync对于目录 /etc/ /etc 是有区别的

  • /etc /etc目录+目录的内容
  • /etc/ /etc/目录下面的内容

6、rsync远程模式

格式
rsync -a 源文件 目标
推送:rsync /etc/hostname [email protected]:/etc/hosts
拉取:rsync [email protected]:/tmp /opt/

7、rsync守护进程模式

服务使用流程
部署
配置
启动,使用
优化
故障
自动化(监控,日志,安全,自动部署,容器)

7.1 检查是否安装

bash 复制代码
yum install -y rsync
#查看安装包名称
rpm -qa rsync
#检查服务目录
rpm -ql rsync
​
/etc/rsyncd.conf #命令配置文件,服务端配置文件,守护进程文件
/usr/bin/rsync  #命令
/usr/lib/systemd/system/rsyncd.service  #systemctl对应的配置文件

7.2 进程配置

a)配置详情
b)进行配置
bash 复制代码
[root@yunwei ~]# cat /etc/rsyncd.conf
#created by linux 2024.8.23
##rsyncd.conf start ##
fake super =yes
uid = rsync
gid = rsync
use chroot = no
max connections = 2000
timeout = 600
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log
ignore errors
read only = false
list = false
#hosts allow = 10.0.0.0/24
#hosts deny = 0.0.0.0/32
auth users = rsync_backup
secrets file = /etc/rsync.password
#####################################
[data]
comment = description imformation
path = /data
c)后续配置
bash 复制代码
#1.添加虚拟用户
useradd  -s /sbin/nologin -M  rsync
#2.创建密码文件,并修改为600权限
#密码文件格式:  用户名:密码
echo 'rsync_backup:123 ' >/etc/rsync.password
chmod 600 /etc/rsync.password
#3.共享目录与权限,修改目录所有者
mkdir /data/
chown -R rsync.rsync /data
d)启动服务
bash 复制代码
systemctl start rsyncd
systemctl enable rsyncd

7.3 测试

1、本地测试
bash 复制代码
rsync -avz /etc/hostname [email protected]::data
2、客户端测试
bash 复制代码
[root@nfs ~]# rsync -avz /etc/hostname [email protected]::data
2-1.免密码传输到服务端(10.0.0.31向10.0.0.41传输文件)
bash 复制代码
#创建密码文件
[root@nfs ~]# echo '1' >> /etc/rsync_client.txt
#设置权限为600
[root@nfs ~]# chmod 600 /etc/rsync_client.txt
#开始发送
[root@nfs ~]# rsync -avz /etc/hosts [email protected]::data --password-file=rsync_client
3、查看日志
bash 复制代码
tail -f /var/log/rsyncd.log

7.4 小结

部署流程
服务端 配置文件
添加虚拟用户
secret文件,密码文件,文件权限
创建共享目录和修改权限
启动或重启,开机自启动,
测试
客户端 密码文件,权限
客户端命令测试

8、守护进程-补充

8.1 uid,gid 与auth user

bash 复制代码
#用户执行
rsync -avz /etc/passwd [email protected]::data --password-file=/etc/rsync_client.passwd

1、服务端收到数据:判断rsync_backup用户,然后等待输入密码

2、把用户名和密码与配置文件里面对比 auth user 和secrets file(600权限)

3、通过后,传输数据

4、数据到达服务器所有者被修改为uid和gid指定的(rsync)

5、数据写入data模块(用户和用户组为rsync)目录下面.

8.2 访问控制-安全措施

  • hosts allow 只准许指定的ip或网段访问
  • hosts deny 拒绝.

可以配置只允许内网(10.0.0.0/24)访问。

如果不是白名单网段访问,会在log查看rsync denied。

9、rsync选项

rsync选项 含义
-a -r递归复制 -l复制软连接 -p保持权限不变 -m保持修改时间不 -o所有者不变 -g用户组不变 -D devices specials 设备与特殊文件
-v 显示过程
-z 传输数据到公网
--bwlimit 限速,不能与-z一起使用
-p 显示更全面的过程
-delete 保持高度同步(实时同步使用)
-exclude 排除

限速并传输

bash 复制代码
rsync -aP --bwlimit=500kb /tmp/1g  [email protected]:/mnt/

10、故障记录

提示 原因
pawwsord mismatch 密码错误
no secrets file 权限配置错误(600)
permission denied 防火墙firewalld和selinux
no matching rule 与hosts allow允许网段的白名单有关
相关推荐
sun03221 小时前
Jenkins的Pipline中有哪些区块,以及其它知识点整理
运维·jenkins
西阳未落1 小时前
Linux(7)——进程(概念篇)
linux·运维·服务器
苒苒鸭1 小时前
nginx 基于IP和用户的访问
linux
领世达检测V133529092492 小时前
智能门锁为什么需要做欧盟网络安全 EN18031 标准检测认证
运维·服务器·网络
樂5022 小时前
Web 服务、 Nfs 服务器以及 Dns 服务器综合实验
运维·服务器
莱茵不哈哈2 小时前
Docker:容器化技术
运维·docker·容器
luckyext3 小时前
SQL SERVER常用聚合函数整理及示例
运维·服务器·数据库·sql·mysql·sqlserver·mssql
滴水之功3 小时前
C语言数据结构-链式栈
linux·c语言·数据结构
liulilittle3 小时前
Ubuntu 18.04 升级内核到 5.X(< 5.10)
linux·运维·服务器·ubuntu
老攀呀3 小时前
CentOS系统上挂载磁盘
linux·运维·centos