前期准备工作
在配置异地灾备数据同步之前,需要先准备好两台服务器,一台作为主服务器(业务运行的服务器),一台作为灾备服务器(存储备份数据的异地服务器),两台服务器都需要安装宝塔面板,且系统建议选择相同的Linux发行版,避免兼容性问题。同时需要确认两台服务器的公网IP可达,防火墙规则开放对应同步端口的访问权限。

安装rsync同步工具
宝塔面板默认可能没有安装rsync工具,需要先在两台服务器上完成安装。可以通过宝塔面板的终端功能执行安装命令,不同系统的安装命令如下:
# CentOS系统安装rsync yum install rsync -y # Ubuntu/Debian系统安装rsync apt-get install rsync -y
配置主服务器rsync服务
主服务器需要启动rsync服务并配置同步模块,具体步骤如下:
- 打开宝塔面板的
软件商店,搜索rsync,如果没有安装则点击安装,安装完成后点击设置进入配置页面 - 在rsync配置文件中添加同步模块,配置文件路径通常为
/etc/rsyncd.conf,添加内容如下:
# 自定义灾备同步模块 [backup_data] path = /www/wwwroot/ # 需要同步的目录,根据实际业务调整 comment = 主服务器业务数据灾备同步 read only = no list = yes auth users = backup_user # 同步认证用户 secrets file = /etc/rsyncd.secrets # 认证密码文件路径
接着创建认证密码文件,设置访问密码:
# 创建密码文件,backup_user是用户名,123456是密码,实际使用时替换为复杂密码 echo "backup_user:123456" > /etc/rsyncd.secrets # 设置密码文件权限,仅root可读取 chmod 600 /etc/rsyncd.secrets # 启动rsync服务并设置开机自启 systemctl start rsyncd systemctl enable rsyncd
配置灾备服务器同步任务
灾备服务器不需要启动rsync服务,只需要配置定时拉取主服务器数据的任务即可,步骤如下:
- 在灾备服务器的宝塔面板中,进入
计划任务页面,任务类型选择Shell脚本 - 设置任务执行周期,建议根据数据更新频率设置,比如每小时或者每天执行一次
- 在脚本内容中填写rsync同步命令,示例如下:
# 灾备服务器拉取主服务器数据的命令 # 主服务器IP替换为实际的主服务器公网IP,backup_data是主服务器配置的模块名 rsync -avz --delete backup_user@主服务器IP::backup_data /www/backup/ --password-file=/etc/rsync_client.pass
其中/etc/rsync_client.pass是灾备服务器上存储主服务器认证密码的文件,创建方式和主服务器类似:
# 仅写入密码,不需要用户名 echo "123456" > /etc/rsync_client.pass # 设置文件权限 chmod 600 /etc/rsync_client.pass
同步任务验证
配置完成后,可以手动执行一次计划任务中的脚本,查看灾备服务器的/www/backup/目录下是否出现了主服务器/www/wwwroot/目录下的所有文件。如果文件同步成功,说明配置生效,后续定时任务会自动按照设置的时间周期完成数据同步。如果出现同步失败的情况,可以检查主服务器rsync服务是否正常运行、防火墙是否开放873端口、认证密码是否匹配等问题。
注意事项
- 同步目录建议根据实际业务调整,不要同步不必要的系统目录,避免占用过多灾备服务器存储空间
- 认证密码一定要设置为复杂字符串,避免被恶意破解导致数据泄露
- 可以定期手动验证灾备数据的完整性,确保在主服务器故障时可以快速恢复业务
- 如果主服务器和灾备服务器之间的网络带宽有限,可以调整rsync的同步参数,比如添加
--bwlimit参数限制同步带宽,避免影响正常业务访问