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

1、备份服务概述

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

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

特点:

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

增量与全量:

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

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

ruby 复制代码
#把/etc/目录传输到另一台机器的/tmp/下面
scp -r /shishuwu/ root@111.229.205.81:/tmp/
rsync -avz /shishuwu/ 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)进行配置

ini 复制代码
[root@backup /oldboy]# cat /etc/rsyncd.conf
#created by shishuwu 2024.2.17
##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 = www by old0boy 14:18 2012-1-13
path = /data

c)后续配置

ini 复制代码
#1、添加虚拟用户,用于进程
[root@nanjing ~]# useradd -s /sbin/nologin -M rsync
[root@nanjing ~]# id rsync
uid=1316(rsync) gid=1316(rsync) 组=1316(rsync)
​
#2、创建密码文件,并且修改600权限
[root@nanjing ~]# echo 'rsync_backup:***' > /etc/rsync.password
[root@nanjing ~]# cat /etc/rsync.password
rsync_backup:1
[root@nanjing ~]# ll /etc/rsync.password
-rw-r--r-- 1 root root 15 2月  17 11:09 /etc/rsync.password
[root@nanjing ~]# chmod 600 /etc/rsync.password 
[root@nanjing ~]# ll /etc/rsync.password
-rw------- 1 root root 15 2月  17 11:09 /etc/rsync.password
​
#3、创建数据文件,修改目录所有者
[root@nanjing ~]# mkdir /data/
[root@nanjing data]# ll -d /data
drwxr-xr-x 2 root root 4096 11月  5 2019 /data
[root@nanjing data]# chown rsync.rsync /data
[root@nanjing data]# ll -d /data
drwxr-xr-x 2 rsync rsync 4096 11月  5 2019 /data

d)启动服务

bash 复制代码
systemctl start rsyncd
systemctl enable rsyncd

7.3 测试

1、本地测试

kotlin 复制代码
rsync -avz /etc/hostname rsync_backup@43.137.51.152::data

2、客户端测试

bash 复制代码
echo '***' > /etc/rsyncnanjing.passwd
chmod 600 /etc/rsyncnanjing.passwd
rsync -avz /etc/passwd rsync_backup@43.137.51.152::data --pasword-file=/etc/rsyncnanjing.passwd
3、查看日志
bash 复制代码
tail -f /var/log/rsyncd.log

7.4 小结

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

8、守护进程-补充

8.1 uid,gid 与auth user

ruby 复制代码
#用户执行
rsync -avz /etc/passwd rsync_backup@43.137.51.152::data --pasword-file=/etc/rsyncnanjing.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 排除

限速并传输

sh 复制代码
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允许网段的白名单有关
相关推荐
对你无可奈何27 分钟前
关于Ubuntu的 update造成的内核升级
运维·服务器·ubuntu
qq_312920111 小时前
Nginx限流与防爬虫与安全配置方案
运维·爬虫·nginx·安全
GanGuaGua1 小时前
Linux系统:线程的互斥和安全
linux·运维·服务器·c语言·c++·安全
lsnm1 小时前
【LINUX网络】IP——网络层
linux·服务器·网络·c++·网络协议·tcp/ip
全糖去冰吃不了苦1 小时前
ELK 集群部署实战
运维·jenkins
不掰手腕1 小时前
在UnionTech OS Server 20 (统信UOS服务器版) 上离线安装PostgreSQL (pgsql) 数据库
linux·数据库·postgresql
Lynnxiaowen2 小时前
今天继续昨天的正则表达式进行学习
linux·运维·学习·正则表达式·云计算·bash
努力学习的小廉2 小时前
深入了解linux系统—— POSIX信号量
linux·运维·服务器
刘一说2 小时前
CentOS部署ELK Stack完整指南
linux·elk·centos
从零开始的ops生活2 小时前
【Day 50 】Linux-nginx反向代理与负载均衡
linux·nginx