使用工具 | VMware 17.0 Xshell 7.0 CentOS 7.0 |
---|---|
参考资料 | 无 |
-
确认是否已了解用户访问网站整体流程
- 是否解用户访问网站整体流程? → 参考教程 : 用户访问网站整体流程概述
-
服务器备份任务的任务概述
● 在用户访问网站整体流程概述中我们已知备份服务器存在的意义就是备份其他服务器中的重要数据, 而需要实现不同服务器之间的数据传输, 需要使用到 rsyncd 服务
● rsync 是服务也是命令, 传输数据时采用的是增量传输知识点 : 增量传输和全量传输的区别
● 全量传输 : 无论多少数据全部
推送走 ( scp )
● 增量传输 : 只将修改、新建
的文件传输走 ( rsync ) -
模拟实现服务器备份服务器任务步骤
(1) 创建模板虚拟机
(2) 通过克隆模板虚拟机创建出两台虚拟机, 一台作为服务端模拟备份服务器 (IP地址为10.0.0.41, 主机名为xuxouy041), 一台作为客户端模拟存储服务器 (IP地址为10.0.0.31, 主机名为xuxouy031)
(3) 在服务端 10.0.0.41 上
① 配置文件
② 添加虚拟用户
③ secret 文件, 密码文件, 文件权限
④ 创建共享目录和修改权限
⑤ 启动服务
⑥ 测试
(3) 在客服端 10.0.0.31 上
① 配置免密
② 客户端命令测试 -
确认是否已完成模板虚拟机的创建和克隆?
-
是否已完成模板虚拟机的创建? → 模板虚拟机安装与配置
-
是否已完成模板虚拟机的克隆? → 实现模板虚拟机的克隆
-
-
配置服务端 (备份服务器, IP地址为10.0.0.41)
# 检查进程和端口 ps -ef | grep rsync ss -lntup | grep rsync
# (服务端配置文件, 守护进程模式) vim /etc/rsyncd.conf -------------------------------------------------- #createt by xuxouy 15:00 2023-11-14 ##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 = 172.16.1.0/24 #hosts deny = 0.0.0.0/32 auth users = rsync_backup secrets file = /etc/rsync.password ##################################### [data] comment = www by xuxouy 14:18 2023-11-09 path = /data -------------------------------------------------- :wq
注意点 : 为什么 rsyncd.conf 配置文件没有注释
因为 rsyncd.conf 存在注释不兼容问题, 所以我将 rsyncd.conf 文件的注释全部取消掉了, 文件中的参数注释如下所示
# 更新 rsync 包 yum install -y rsync # 创建虚拟用户 useradd -s /sbin/nologin -M rsync # 设置服务端密码 echo 'rsync_backup:123456' > /etc/rsync.password # 检查服务端密码是否设置成功 cat /etc/rsync.password # 查看 rsync.password 权限 ll /etc/rsync.password # 修改 rsync.password 权限 chmod 600 /etc/rsync.password # 创建 data 目录 mkdir -p /data/ # 修改 data 目录权限 chown -R rsync.rsync /data/ # 查看虚拟用户是否成功创建 id rsync # 查看虚拟用户信息 grep rsync /etc/passwd # 查看密码文件 ll /etc/rsync.password # 查看文件夹情况 ll -d /data/ # 启动服务和设置服务开机自动 systemctl start rsyncd systemctl enable rsyncd # 查看服务状态 systemctl status rsyncd # 查看 Selinux 状态 (permissive或disabled表示关闭; enforcing表示开启) getenforce
# 服务端本地测试 rsync -av /etc/hostname rsync_backup@10.0.0.41::data # 查看是否备份成功 tree /data/
知识点 : 通过查看日志解决报错
如果 rsyncd 命令执行报错可以通过tail -f /var/log/rsyncd.log
命令查看日志文件解决
-
配置客户端 (存储服务器, IP地址为10.0.0.31)
# 插入密码到指定文件 echo '123456' > /etc/rsync.client # 修改文件权限 chmod 600 /etc/rsync.client # 将/etc/目录打包压缩到tmp目录下 tar zcfP /tmp/etc.tar.gz /etc/ # 测试免密访问将压缩包备份到服务端/data目录下 rsync -avz /tmp/etc.tar.gz rsync_backup@backup::data --password-file=/etc/rsync.client
知识点 : rsync 传输命令讲解
rsync_backup@backup::data
表示将压缩包/tmp/etc.tar.gz
通过 rsync 增量传输到 rsync_backup 用户所在的主机上的 /data/ 目录中去, 因为在配置模板虚拟机时我们进行了 hosts 解析, backup 映射的 IP地址为 172.1.16.41, 所以数据通过内网增量传输到了xuxouy041的主机上, 而--password-file=/etc/rsync.client
则实现免密传输这个功能