51 lines
1.9 KiB
Markdown
51 lines
1.9 KiB
Markdown
# 固定资产系统备份说明
|
|
|
|
本仓库只备份固定资产系统,不处理摄影设备借还系统。对应服务器资源如下:
|
|
|
|
- 项目目录:`/opt/equipment-management`
|
|
- 数据库容器:`equipment-mysql`
|
|
- 数据库名:`equipment_management`
|
|
- 后端容器:`equipment-backend`
|
|
- 上传目录:`/app/uploads`
|
|
- 备份目录:`/opt/backups/equipment-management`
|
|
- 默认保留:最近 `3` 份备份
|
|
|
|
## 执行方式
|
|
|
|
先把脚本上传到服务器,例如放到 `/opt/equipment-management/scripts/backup-equipment.sh`,然后执行:
|
|
|
|
```bash
|
|
chmod +x /opt/equipment-management/scripts/backup-equipment.sh
|
|
/opt/equipment-management/scripts/backup-equipment.sh
|
|
```
|
|
|
|
如果以后要临时调整保留数量,可以这样执行:
|
|
|
|
```bash
|
|
KEEP_BACKUPS=5 /opt/equipment-management/scripts/backup-equipment.sh
|
|
```
|
|
|
|
脚本不包含数据库密码默认值。密码读取顺序为:
|
|
|
|
1. 当前进程的 `DB_PASSWORD`
|
|
2. 当前进程的 `MYSQL_ROOT_PASSWORD`
|
|
3. 只读获取 `equipment-mysql` 容器环境中的 `MYSQL_ROOT_PASSWORD`
|
|
|
|
三种方式都无法取得密码时,备份会明确失败,不会继续生成不完整备份,也不会把密码打印到日志。
|
|
|
|
## 备份内容
|
|
|
|
每次执行会生成一个时间戳目录,包含:
|
|
|
|
- `db/equipment_management.sql.gz`:数据库导出
|
|
- `uploads/uploads.tar.gz`:上传文件归档
|
|
- `config/`:当前部署配置副本
|
|
- `backup-info.txt`:备份元信息
|
|
- `SHA256SUMS`:校验文件
|
|
|
|
脚本完成后会自动清理更早的备份目录,只保留最近 `KEEP_BACKUPS` 份,避免占满服务器磁盘。
|
|
|
|
## 回滚思路
|
|
|
|
发生部署异常时,先恢复代码和部署配置,再恢复数据库和上传目录。数据库恢复建议在停掉固定资产系统容器后执行,避免写入冲突。摄影设备借还系统使用独立容器、端口、网络和数据卷,不应纳入这套备份或回滚流程。
|