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

1、备份服务概述

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

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

特点:

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

增量与全量:

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

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

bash 复制代码
#把/etc/目录传输到另一台机器的/tmp/下面
scp -r /test/ root@111.229.205.81:/tmp/
rsync -avz /test/ root@111.229.205.81:/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/ root@111.229.205.81:/tmp/
rsync -avz /test/ root@111.229.205.81:/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 root@10.0.0.31:/etc/hosts
拉取:rsync root@10.0.0.31:/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 rsync_backup@10.0.0.41::data
2、客户端测试
bash 复制代码
[root@nfs ~]# rsync -avz /etc/hostname rsync_backup@10.0.0.41::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 rsync_backup@10.0.0.41::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 rsync_backup@10.0.0.41::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  root@10.0.0.31:/mnt/

10、故障记录

提示 原因
pawwsord mismatch 密码错误
no secrets file 权限配置错误(600)
permission denied 防火墙firewalld和selinux
no matching rule 与hosts allow允许网段的白名单有关
相关推荐
啊呦.超能力1 分钟前
Linux下进程间的通信--共享内存
linux·运维·服务器
一眼万里*e7 分钟前
UE5 Linux编译流程(实战)
linux·ue5
勤劳兔码农9 分钟前
使用Ansible进行多云环境的自动化部署与管理
运维·自动化·ansible
zjsnh_Z11 分钟前
Linux 操作系统 进程(2)
linux·运维·服务器
KookeeyLena515 分钟前
我想要抓取新加坡当地电商平台数据,使用什么地区的IP最合适
服务器·网络·tcp/ip
雾岛LYC听风15 分钟前
3. 轴指令(omron 机器自动化控制器)——>MC_Power&MC_MoveJog
运维·c#·自动化
长安初雪16 分钟前
计算机网络 第三章: 点对点协议
服务器·网络·计算机网络
only_print17 分钟前
linux网络编程——UDP编程
linux·网络·嵌入式硬件
KookeeyLena335 分钟前
如何进行IP清洗
服务器·网络·tcp/ip
KookeeyLena435 分钟前
动态ip切换频率是快点好还是慢点好
linux·网络·tcp/ip