宝塔多服务器同步备份插件是一款专业的异地数据同步备份工具,支持将网站、数据库、FTP账户、计划任务等数据自动同步到远程服务器,实现数据容灾备份和环境快速迁移。
- 🎯 智能化环境适配 - 自动检测并安装目标服务器缺失的软件(Nginx/Apache/PHP/MySQL等)
- ⏰ 定时自动备份 - 支持按分钟/小时设置同步周期,自动执行无需人工干预
- 🔄 增量同步 - 支持重复执行,智能跳过已存在的数据
- 💼 多服务器管理 - 一台服务器可配置多个备份目标,统一管理
- 🛡️ 数据安全 - 异地备份防止单点故障,确保业务连续性
- ✅ 网站同步 - 完整同步网站文件、配置、SSL证书、绑定域名
- ✅ 数据库同步 - 自动导出导入MySQL数据库,保留字符集和权限
- ✅ FTP同步 - 同步FTP账户、密码和目录权限
- ✅ 计划任务同步 - 迁移所有计划任务配置
- ✅ 环境配置同步 - 同步反向代理、重定向、目录保护等配置
- 🔍 环境检测 - 自动检测目标服务器环境并安装缺失组件
- 🚀 PHP扩展同步 - 自动检测并安装PHP扩展
- ⚙️ 禁用函数同步 - 同步PHP禁用函数配置
- 🔒 防任务重叠 - 文件锁机制防止同步任务并发执行
- 📊 实时进度 - 详细的日志输出,实时查看同步进度
- 🎨 现代化UI - 美观的渐变紫色主题设计
- 📱 响应式布局 - 支持桌面和移动端访问
- 🌐 域名智能同步 - 自动同步所有绑定域名(包括主域名和附加域名)
- ⏱️ 执行统计 - 显示同步耗时和成功/失败统计
- 🔔 友好提示 - 周期过短时自动提示建议
- 操作系统:Linux(CentOS/Ubuntu/Debian等)
- 宝塔面板:6.9.8 及以上版本
- Python:3.5+ (宝塔自带)
- 依赖包:croniter、psutil
-
下载插件包
- 在本项目的 Releases 页面下载最新版ZIP包
- 或点击仓库页面的"克隆/下载" → "下载ZIP"
-
导入到宝塔面板
- 登录宝塔面板
- 进入
软件商店→第三方应用 - 点击
导入插件 - 选择下载的ZIP文件
- 等待安装完成(自动安装依赖)
-
启用插件
- 在已安装的插件列表中找到"多服务器同步备份"
- 点击"设置"打开插件界面
💡 提示:ZIP包会自动运行
install.sh安装依赖,无需手动操作
# 1. 克隆项目到宝塔插件目录
cd /www/server/panel/plugin
git clone https://gitee.com/jiulingyun_oa/tower-sync.git remoteback
# 2. 运行安装脚本
cd remoteback
bash install.sh install
# 3. 刷新宝塔面板
# 直接刷新浏览器页面即可,无需重启面板如果你需要自己创建ZIP包:
# 进入项目目录
cd /www/server/panel/plugin/remoteback
# 打包(文件直接在ZIP根目录,无二级目录)
zip -r ../remoteback.zip . \
-x "config/config.json" \
-x "config/sync_*.json" \
-x "config/.sync_*.lock" \
-x "backup/*" \
-x "__pycache__/*" \
-x ".git/*" \
-x "*.pyc"
# ZIP包会生成在上级目录
# /www/server/panel/plugin/remoteback.zip
# ZIP包结构(宝塔要求,文件在根目录):
# remoteback.zip
# ├── index.html
# ├── info.json
# ├── install.sh
# ├── README.md
# ├── LICENSE
# ├── helpr.py
# └── ...其他文件
⚠️ 重要:宝塔插件要求ZIP包中的文件直接在根目录,不能有二级目录!
-
开启目标服务器的API接口
- 登录目标备份服务器的宝塔面板
- 进入 设置 → API接口
- 开启API接口功能
- 将源服务器IP添加到白名单
-
获取API密钥
- 在API接口页面复制API密钥
-
打开插件
- 在宝塔面板中找到"多服务器同步备份"插件
- 点击"设置"打开插件界面
-
添加配置
- 点击"同步设置" → "添加配置"
- 填写以下信息:
- 面板名称:自定义名称,如"生产服务器1"
- 面板地址:目标服务器地址,如 http://192.168.1.100:8888
- 面板密钥:目标服务器的API密钥
- 同步周期:选择"按小时"或"按分钟",建议2小时以上
-
选择同步数据
- 勾选需要同步的内容(至少选择一项)
-
保存配置
- 点击"确定"保存
- 点击"状态" → "启动服务"
- 插件会按设置的周期自动执行同步
- 点击"状态" → "直接运行"
- 立即执行所有配置的同步任务
- 正常日志:查看同步进度和结果
- 错误日志:查看失败原因和错误详情
将多台生产服务器的数据统一同步到一台备份服务器,实现集中式数据备份。
快速将整个服务器环境(网站、数据库、配置等)迁移到新服务器。
定时异地备份,防止单点故障导致数据丢失。
快速复制生产环境到测试或开发服务器。
| 数据类型 | 建议周期 | 说明 |
|---|---|---|
| 仅网站文件 | 2-4小时 | 文件多,传输耗时 |
| 仅数据库 | 1-2小时 | 导出导入较快 |
| 网站+数据库 | 4-6小时 | 综合耗时长 |
| 全量同步 | 6-12小时 | 数据量大,建议凌晨执行 |
remoteback/
├── config/ # 配置文件目录
├── static/ # 静态资源(CSS/JS)
├── templates/ # 页面模板
├── helpr.py # 辅助函数库
├── panel_api.py # 宝塔API封装
├── psync.py # 核心同步逻辑
├── remoteback_main.py # 主程序入口
├── schedule.py # 定时调度器
├── index.html # 主界面
├── install.sh # 安装脚本
└── info.json # 插件信息
- 后端:Python 3
- 前端:jQuery + Layui
- 定时任务:Cron + Croniter
- 文件传输:宝塔API + Requests
- 并发控制:文件锁(fcntl)
- ✅ 全新现代化UI设计(渐变紫色主题)
- ✅ 网站域名智能同步功能
- ✅ 防止同步任务重叠机制
- ✅ 配置名称唯一性保证(时间戳+UUID)
- ✅ 修复版本号字符串比较错误
- ✅ 修复nginx配置读取Bug
- ✅ 修复URL解析错误
- ✅ 修复调度器时间计算问题
- ✅ 修复配置初始化检查Bug
- ✅ 强制选择同步数据(不允许空配置)
- ✅ 同步时间立即更新
- ✅ 详细的进度显示和统计
- ✅ 图标化日志输出
- ✅ 完善的异常处理
- ✅ 周期过短智能提示
A: 检查以下几点:
- 确认已点击"启动服务"
- 查看"状态"页面,确认显示"开启"
- 检查日志是否有"跳过执行"提示(任务重叠)
- 确认同步周期设置合理
A:
- 查看"错误日志"页面,找到具体错误信息
- 常见原因:
- 目标服务器API密钥错误
- IP未加入白名单
- 目标服务器磁盘空间不足
- 网络连接问题
A:
- 说明上次同步还未完成
- 建议增加同步周期时间
- 或减少同步的数据量
A:
- ✅ 网站文件和配置
- ✅ 网站绑定的所有域名
- ✅ MySQL数据库
- ✅ FTP账户
- ✅ 计划任务
- ✅ SSL证书
- ✅ 反向代理、重定向、目录保护配置
欢迎提交 Issue 和 Pull Request!
- 🐛 Bug修复:fix: 修复xxx问题
- ✨ 新功能:feat: 添加xxx功能
- 📝 文档:docs: 更新xxx文档
- 🎨 样式:style: 优化xxx样式
本项目采用 MIT License 开源协议。
- 作者:yang
- 邮箱:26577792@qq.com
- 官网:https://www.jiulingyun.cn
感谢所有为这个项目做出贡献的开发者!
如果这个项目对你有帮助,欢迎 Star ⭐ 支持!
Made with ❤️ by yang



