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允许网段的白名单有关
相关推荐
wVelpro4 分钟前
如何在Pycharm 2025.3 版本实现虚拟环境“Make available to all projects”
linux·ide·pycharm
程序员老舅41 分钟前
C++高并发精髓:无锁队列深度解析
linux·c++·内存管理·c/c++·原子操作·无锁队列
雨中风华1 小时前
Linux, macOS系统实现远程目录访问(等同于windows平台xFsRedir软件的目录重定向)
linux·windows·macos
Yeats_Liao1 小时前
评估体系构建:基于自动化指标与人工打分的双重验证
运维·人工智能·深度学习·算法·机器学习·自动化
爱吃生蚝的于勒1 小时前
【Linux】进程信号之捕捉(三)
linux·运维·服务器·c语言·数据结构·c++·学习
The森2 小时前
Linux IO 模型纵深解析 01:从 Unix 传统到 Linux 内核的 IO 第一性原理
linux·服务器·c语言·经验分享·笔记·unix
文艺理科生Owen2 小时前
Nginx 路径映射深度解析:从本地开发到生产交付的底层哲学
运维·nginx
期待のcode2 小时前
Redis的主从复制与集群
运维·服务器·redis
翼龙云_cloud2 小时前
腾讯云代理商: Linux 云服务器搭建 FTP 服务指南
linux·服务器·腾讯云
纤纡.2 小时前
Linux中SQL 从基础到进阶:五大分类详解与表结构操作(ALTER/DROP)全攻略
linux·数据库·sql