实现两个站点数据同步有四种方法:一、宝塔计划任务+rsync同步文件;二、MySQL主从复制同步数据库;三、使用“同步助手”插件可视化同步;四、Git版本控制统一代码源。

如果您在宝塔面板中管理多个网站,需要确保两个站点的文件或数据库内容保持一致,则可能是由于手动更新易出错或部署流程不统一导致数据不一致。以下是实现两个站点之间数据同步的几种可行方法:
一、使用宝塔计划任务 + rsync 同步文件
该方法通过 Linux 系统自带的 rsync 工具,在服务器本地完成两个站点目录之间的增量文件同步,效率高且支持排除特定文件类型。
1、登录宝塔面板,进入【计划任务】页面,点击【添加计划任务】。
2、任务类型选择【Shell 脚本】,执行周期按需设置(例如每5分钟或每日凌晨)。
3、在脚本内容中输入以下命令(请将 /www/wwwroot/site_a 替换为源站点路径,/www/wwwroot/site_b 替换为目标站点路径):
rsync -av --delete --exclude='*.log' --exclude='.user.ini' /www/wwwroot/site_a/ /www/wwwroot/site_b/
4、点击【添加任务】并确认启用。系统将按设定周期自动执行同步操作。
二、通过 MySQL 数据库主从复制同步数据库
该方法适用于两个站点共用同一套业务逻辑但需独立运行的场景,通过配置 MySQL 主从关系,使从库站点数据库实时获取主库的写入变更。
1、在宝塔面板【数据库】中,确认主站点数据库所在服务器已开启 binlog,并设置 server-id = 1(修改 /www/server/mysql/my.cnf 后重启 MySQL)。
2、为主数据库创建用于同步的专用账号:
CREATE USER 'repl'@'%' IDENTIFIED BY '强密码';
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';
FLUSH PRIVILEGES;
3、在从站点服务器上执行 CHANGE MASTER TO 命令,指定主库 IP、端口、用户名、密码及当前 binlog 位置(通过 SHOW MASTER STATUS 获取)。
4、执行 START SLAVE; 并使用 SHOW SLAVE STATUS\G 验证 Slave_IO_Running 和 Slave_SQL_Running 是否均为 Yes。
三、使用宝塔插件“同步助手”进行可视化同步
该方法依赖第三方兼容插件,提供图形界面操作,适合不熟悉命令行的用户,支持文件与数据库一键比对和推送。
1、进入宝塔面板【软件商店】,搜索“同步助手”,安装对应版本(需确认兼容当前宝塔版本)。
2、安装完成后,在左侧菜单找到【同步助手】,点击进入管理界面。
3、点击【新增同步任务】,选择源站点根目录与目标站点根目录,勾选【同步数据库】并填写对应数据库连接信息。
4、在高级选项中设置同步模式为【单向推送】,并启用【跳过已存在同名文件校验】以提升速度。
5、保存后点击【立即执行】,插件将自动完成差异扫描与同步操作。
四、利用 Git 版本控制统一代码源
该方法将两个站点的程序代码托管至同一 Git 仓库,通过拉取最新提交实现代码层面的一致性,适用于开发与生产环境分离的部署策略。
1、在服务器上初始化一个裸仓库(如 /www/git/site_repo.git),并设置为共享权限。
2、在源站点目录中执行 git init、git add .、git commit -m "init",然后 git remote add origin /www/git/site_repo.git,最后 git push origin master。
3、在目标站点目录中执行 git init、git remote add origin /www/git/site_repo.git、git pull origin master。
4、在宝塔【计划任务】中添加 Shell 脚本:cd /www/wwwroot/site_b && git pull origin master,设置为定时执行。










