⭐ 推荐:社区规则条款 V1.0

宝塔面板如何用 rsync 增量同步两台服务器的网站目录?

juming
juming 作者初级会员
发布于 2026-11-03 02:04 ·2 浏览 ·0 回复

在宝塔面板环境下使用 rsync 实现两台服务器网站目录的增量同步,核心步骤是:在源服务器开启 SSH 服务并放行端口,在目标服务器执行带有 -avz --delete 参数的 rsync 命令通过 SSH 连接传输,最后配合宝塔面板的“计划任务”实现定时自动同步。

源服务器必须开启 SSH 服务吗?

是的,必须确保源服务器的 SSH 服务正在运行且防火墙开放。rsync 默认使用 SSH 协议进行传输,如果服务未开启或端口被拦截,命令将无法连接。

操作步骤:

  1. 检查 SSH 状态:登录源服务器,执行 systemctl status sshd(CentOS 7/8)或 service ssh status(Ubuntu/Debian)。
  2. 启动 SSH:如果显示 inactive 或 dead,执行 systemctl start sshd 启动。
  3. 放行端口:在宝塔面板的“安全”选项卡中,确保 22 端口(或自定义端口)已添加放行规则。

rsync 命令怎么写最标准?

结论:使用 rsync -avz --delete 源路径 用户名@目标IP:目标路径 命令,这是实现增量备份且保证目录结构一致的最标准写法。

参数详解:
* -a:归档模式,保留文件权限、时间戳、所有者等属性。
* -v:显示详细传输过程。
* -z:在传输过程中对文件进行压缩,节省带宽。
* --delete:删除目标目录中源目录没有的文件,确保两边完全一致。

具体命令示例:
假设源服务器 IP 为 192.168.1.100,网站目录在 /www/wwwroot,目标服务器 IP 为 192.168.1.200,用户名为 root,目标目录为 /backup/wwwroot。
在目标服务器上执行:

rsync -avz --delete root@192.168.1.100:/www/wwwroot/ /backup/wwwroot/

如何避免每次输入密码?

结论:通过 SSH 密钥对认证,将目标服务器的公钥写入源服务器的 authorized_keys 文件,即可实现无密码自动同步。

操作步骤:

  1. 生成密钥:在目标服务器上执行 ssh-keygen -t rsa -P ''(连续回车即可)。
  2. 复制公钥:执行 ssh-copy-id root@192.168.1.100。
  3. 测试:再次执行 rsync 命令,此时无需输入密码即可直接同步。

怎么设置定时自动同步?

结论:利用宝塔面板的“计划任务”功能,创建 Shell 脚本任务,设置每 5 分钟或 1 小时执行一次 rsync 命令。

操作步骤:

  1. 登录宝塔面板,点击左侧“计划任务”。
  2. 点击“添加任务”,类型选择“Shell 脚本”。
  3. 脚本内容:
    #!/bin/bash
    /usr/bin/rsync -avz --delete --password-file=/tmp/rsync.pass root@192.168.1.100:/www/wwwroot/ /backup/wwwroot/
    

*(注:如需免密登录,需提前在 /tmp/rsync.pass 中写入目标服务器的 SSH 密码,并设置文件权限为 600)*

  1. 执行周期:选择“N分钟执行一次”,建议设置 5 分钟,以实现秒级备份容错。

rsync 是目前运维中最高效、节省带宽的文件同步工具,通过上述配置,你可以轻松实现两台服务器间网站目录的实时或准实时备份。建议初次使用时先在测试环境运行一次 rsync -avz --dry-run 命令(增加 --dry-run 参数),确认无误后再正式执行,以免误删数据。

本文转载自 GJ站长论坛,原文地址:https://www.gj0.com/thread-2712.html
转载请注明出处,版权归原作者所有。
—/ 5暂无评分
还没有评分,来打第一分吧

全部回复 0

还没有回复,来抢沙发~