宝塔面板如何用 rsync 增量同步两台服务器的网站目录?
在宝塔面板环境下使用 rsync 实现两台服务器网站目录的增量同步,核心步骤是:在源服务器开启 SSH 服务并放行端口,在目标服务器执行带有 -avz --delete 参数的 rsync 命令通过 SSH 连接传输,最后配合宝塔面板的“计划任务”实现定时自动同步。
源服务器必须开启 SSH 服务吗?
是的,必须确保源服务器的 SSH 服务正在运行且防火墙开放。rsync 默认使用 SSH 协议进行传输,如果服务未开启或端口被拦截,命令将无法连接。
操作步骤:
- 检查 SSH 状态:登录源服务器,执行
systemctl status sshd(CentOS 7/8)或service ssh status(Ubuntu/Debian)。 - 启动 SSH:如果显示
inactive或dead,执行systemctl start sshd启动。 - 放行端口:在宝塔面板的“安全”选项卡中,确保 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 文件,即可实现无密码自动同步。
操作步骤:
- 生成密钥:在目标服务器上执行
ssh-keygen -t rsa -P ''(连续回车即可)。 - 复制公钥:执行
ssh-copy-id root@192.168.1.100。 - 测试:再次执行
rsync命令,此时无需输入密码即可直接同步。
怎么设置定时自动同步?
结论:利用宝塔面板的“计划任务”功能,创建 Shell 脚本任务,设置每 5 分钟或 1 小时执行一次 rsync 命令。
操作步骤:
- 登录宝塔面板,点击左侧“计划任务”。
- 点击“添加任务”,类型选择“Shell 脚本”。
- 脚本内容:
#!/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)*
- 执行周期:选择“N分钟执行一次”,建议设置
5分钟,以实现秒级备份容错。
rsync 是目前运维中最高效、节省带宽的文件同步工具,通过上述配置,你可以轻松实现两台服务器间网站目录的实时或准实时备份。建议初次使用时先在测试环境运行一次 rsync -avz --dry-run 命令(增加 --dry-run 参数),确认无误后再正式执行,以免误删数据。
转载请注明出处,版权归原作者所有。