db-sync-0.1.0 is not a library.
DB-Sync 数据库备份同步系统
一个安全稳定的数据库备份文件同步系统,支持多系统备份文件的自动同步和验证。
系统架构
- 服务端 (db-sync-server): 接收和存储备份文件,提供API接口
- 客户端 (db-sync-client): 定期检查和上传备份文件
功能特性
安全特性
- JWT令牌认证
- MD5文件完整性校验
- 文件大小验证
- 安全的HTTP传输
稳定性特性
- 自动重试机制
- 错误恢复
- 日志记录
- 健康检查
同步策略
- 月度上传: 每月20号自动上传所有备份文件
- 每日验证: 每月20-26号验证文件完整性
- 增量同步: 只上传变更的文件
快速开始
1. 配置服务端
编辑 server.config.json:
2. 配置客户端
编辑 client.config.json:
3. 构建项目
4. 生成认证令牌
使用内置的 CLI 工具为每个系统生成 512 位认证令牌:
为单个系统生成令牌
输出示例:
=== DB-Sync 认证令牌生成 ===
系统 IP: 192.168.1.100
系统名称: HR System
令牌长度: 512 位
生成的令牌: 1154e194e0668a3a37ce63a28c6fe72e0200b937fb1ebb6bbf80345a8bee00c6a612fe10dac35b7781f89a13116c3cf81941c316529b0e89b2ee8ebbf3ac4846
批量生成令牌
- 首先创建配置文件
batch_config.json:
- 然后运行批量生成命令:
验证令牌格式
查看所有可用命令
生成示例配置
5. 运行系统
启动服务端
启动客户端
6. 测试系统
运行测试脚本:
# Windows
# Linux/Mac
API接口
健康检查
GET /health
文件上传
POST /api/upload
Headers:
- authorization: Bearer <token>
Query Parameters:
- system_ip: 系统IP
- filename: 文件名
- blake3: 文件blake3
- size: 文件大小
Body: 文件二进制数据
blake3查询
POST /api/blake3
Headers:
- authorization: Bearer <token>
Query Parameters:
- system_ip: 系统IP
- filename: 文件名
文件结构
db-sync/
├── src/
│ ├── db-sync-server.rs # 服务端代码
│ └── db-sync-client.rs # 客户端代码
├── server.config.json # 服务端配置
├── client.config.json # 客户端配置
├── test_data/ # 测试数据
├── test_system.bat # Windows测试脚本
├── test_system.sh # Linux/Mac测试脚本
└── README.md # 说明文档
安全建议
- 令牌管理: 使用强密码作为auth_token,定期更换
- 网络安全: 在生产环境中使用HTTPS
- 访问控制: 限制API访问的IP地址
- 备份加密: 对敏感备份文件进行加密
监控和维护
日志查看
系统使用结构化日志,可通过环境变量控制日志级别:
健康检查
定期检查服务状态:
文件验证
手动验证文件完整性:
# 计算本地文件blake3校验值
# 查询服务器文件blake3校验值
故障排除
常见问题
- 连接失败: 检查网络连接和防火墙设置
- 认证失败: 验证auth_token配置是否正确
- 文件校验失败: 检查文件传输过程中的完整性
- 磁盘空间不足: 定期清理旧的备份文件
调试模式
启用详细日志:
许可证
本项目采用MIT许可证。
Crates.io 信息
包名: db-sync
版本: 0.1.0
Rust 版本要求: 1.70+
许可证: MIT
关键词: backup, sync, database, file-transfer, security
发布说明
此包已准备好发布到 crates.io,提供企业级的数据库备份同步解决方案。
功能特性
- 🔐 安全的令牌认证机制
- 📁 文件完整性校验 (blake3)
- ⏰ 定时任务调度
- 🔄 自动重试和错误恢复
- 📊 详细的日志记录和监控
适用场景
- 企业数据库备份
- 多系统文件同步
- 定时数据备份任务
- 安全的文件传输
贡献
欢迎提交 Issue 和 Pull Request 来改进这个项目。
更新日志
v0.1.0
- 初始版本发布
- 实现基本的客户端-服务器架构
- 支持文件上传和blake3校验
- 添加定时任务调度功能
- 完善的错误处理和日志记录