当前位置: 首页 > news >正文

【运维实战】Rsync将一台主Web服务器上的文件和目录同步到另一台备份服务器!

在管理 Web 服务器时,确保数据安全且在发生故障时能够快速恢复至关重要,备份和镜像 Web 服务器数据最可靠的方法之一是使用 rsync

Rsync 工具可以帮助在两台服务器之间同步文件和目录,非常适合用于创建 Web 服务器数据的备份和镜像。

下面将详细介绍使用 rsync 将 Web 服务器与备份服务器进行同步。同时介绍设置无密码登录,通过 cron 定时任务实现自动化的同步过程。

1.环境说明

现在有两台服务器,一台为主 WEB 服务器,另一台为备份服器,其关键信息如下表所示:

服务器类型IP 地址主机名

主 Web 服务器

192.168.250.100

web.test.com

备份服务器

192.168.250.200

backup.test.com

其拓扑图如下:

图片

注:两台服务器之间应启用 SSH 访问,这将用于通过 SSH 密钥设置无密码登录,从而实现顺畅的自动化操作。

2.设置无密码 SSH 登录

为了通过 cron 自动化同步过程,需要从主 Web 服务器(主服务器)到备份服务器设置无密码 SSH 登录,这将允许 rsync 在每次运行时无需输入密码。

登录到主 Web 服务器(web.test.com),生成 SSH 密钥,并确保接受默认的文件位置且不设置密钥密码。

ssh-keygen -t rsa -b 2048

接下来,使用 ssh-copy-id 命令将公钥复制到备份服务器:

ssh-copy-id admin@192.168.250.200

最后,通过从主 Web 服务器登录到备份服务器来测试连接:

ssh admin@192.168.250.200

如果无需输入密码即可登录,则表示设置成功。

3.使用 Rsync 同步 Web 服务器数据

现在我们已经设置了无密码 SSH,可以使用 rsync 将 Web 服务器的数据同步到备份服务器。Web 服务器的数据通常存储在 /var/www/html/ 目录中,我们将使用该目录进行备份和镜像。

# 基本的 Rsync 命令用法补充

要在主 Web 服务器(web.test.com)上执行一次性备份,请运行以下命令:

rsync -avz /var/www/html/ user@host_ip:/path/to/backup/directory

上述命令的解释如下:

  • -a 表示“归档模式”,可保留文件的权限、时间戳和其他属性。

  • -v 启用详细输出,以便您可以看到正在传输的文件。

  • -z 启用压缩,以减少数据传输量。

1)将文件同步到备份服务器目录

将 /path/to/backup/directory 替换为备份服务器(这里假设备份服务器的备份目录在/data/backup/web下)上规划存储备份的实际路径。

例如:

rsync -avz /var/www/html/ admin@192.168.250.200:/data/backup/web

2)镜像 Web 服务器目录

如果需要镜像目录(即使备份与源目录完全一致),可以使用 --delete 选项:

rsync -avz --delete /var/www/html/ admin@192.168.250.200:/data/backup/web

--delete参数会删除备份目录中不再存在于 Web 服务器上的文件,确保两个目录完全一致。

4.使用 Cron 自动化备份

为了确保定期备份,我们可以使用 cron 定时任务自动运行 rsync 命令,这样备份过程将在指定的时间运行,例如每天午夜。

在主 Web 服务器(web.test.com)上,通过运行以下命令打开 crontab 文件:

crontab -e

要将备份设置为每天00:00运行,请在 crontab 中添加以下行:

0 0 * * * rsync -avz --delete /var/www/html/ admin@192.168.250.200:/data/backup/web

保存 crontab 文件并退出,这样 cron 任务将每天自动在凌晨 12:00 运行(半夜时分)。

也可以根据需要调整时间,比如,要改成每天凌晨 1:00 运行,可以这样修改:

0 1 * * * rsync -avz --delete /var/www/html/ admin@192.168.250.200:/data/backup/web
5.验证备份

设置好 cron任务后,可以通过检查系统日志来验证 cron 任务是否按预期运行:

grep CRON /var/log/syslog

登录到备份服务器(backup.test.com),检查 /data/backup/web 目录中的文件是否与主 Web 服务器上的 /var/www/html/ 目录中的文件一致。

我们还可以通过在主 Web 服务器上删除一个文件,然后验证在下一次 rsync 运行后该文件是否从备份目录中删除,来进行测试。

相关文章:

  • ES海量数据更新及导入导出备份
  • 你工作中涉及的安全方面的测试有哪些怎么回答
  • 第6篇:中间件 SQL 重写与语义分析引擎实现原理
  • 瀚文(HelloWord)智能键盘项目深度剖析:从0到1的全流程解读
  • Ubuntu24.04 交叉编译 aarch64 ffmpeg
  • 旅游微信小程序制作指南
  • 高并发区块链系统实战:从架构设计到性能优化
  • 华为VanillaNet遇上BiFPN:YOLOv8的性能突破之旅
  • `<CLS>` 向量是 `logits` 计算的“原材料”,`logits` 是基于 `<CLS>` 向量的下游预测结果
  • Python爬虫:trafilatura 的详细使用(高效的网页正文提取工具)
  • stress 服务器压力测试的工具学习
  • MySQL范式和反范式
  • 深度学习之模型压缩三驾马车:模型剪枝、模型量化、知识蒸馏
  • LeetCode 3370.仅含置位位的最小整数
  • 42、响应处理-【源码分析】-浏览器与PostMan内容协商完全适配
  • 面试题小结(真实面试)
  • Elasticsearch中的语义搜索(Semantic Search)介绍
  • Go语言学习-->项目中引用第三方库方式
  • Zookeeper 集群部署与故障转移
  • 细说C语言将格式化输出到字符串的函数sprintf、_sprintf_l、swprintf、_swprintf_l、__swprintf_l
  • 上海第五届世界进口博览会/seo关键词推广
  • 中国铁路建设投资公司网站熊学军/百度竞价代运营外包
  • 微信公众平台功能开发/长春seo排名公司
  • 长沙做网站建设公司排名/网络销售怎么找客源
  • php做的网站模板下载地址/百度公司电话是多少
  • 沈阳手机网站制作/网站推广的主要方式