38 lines
1.5 KiB
Markdown
38 lines
1.5 KiB
Markdown
# nx 上帝菜单巡检第四轮 — Docker MySQL 备份 + 运维 cron
|
||
|
||
| 项 | 内容 |
|
||
|----|------|
|
||
| 日期 | 2026-06-06 |
|
||
| 动机 | 升级时 `backup_mysql` 因宿主机无 `mysqldump` 且 URL host 为 1Panel 容器名而静默跳过;`db_backup.sh` 仍读 Supervisor 时代 `.env` |
|
||
|
||
## 变更摘要
|
||
|
||
1. **mysql_dump_to_file.sh**(新):统一 mysqldump 策略 — `docker exec` MySQL 容器 → 宿主机客户端 → `docker run` on `1panel-network`。
|
||
2. **backup_mysql**:改调共享脚本,不再要求宿主机预装 `mysqldump`。
|
||
3. **db_backup.sh**:Docker 生产路径,从 Nexus 容器/volume 解析 `NEXUS_DATABASE_URL`,默认 `/var/backups/nexus`。
|
||
4. **install_ops_cron.sh**(新):幂等写入 `health_monitor`(每分钟)与 `db_backup`(每日 03:00)crontab。
|
||
5. **nx**:菜单 `[e]` / 子命令 `nx cron` 安装上述 cron。
|
||
6. **install_ops_cron**:宿主机无 `crontab` 时自动 `apt install cron` 并启用服务。
|
||
|
||
## 涉及文件
|
||
|
||
- `deploy/mysql_dump_to_file.sh`
|
||
- `deploy/install_ops_cron.sh`
|
||
- `deploy/db_backup.sh`
|
||
- `deploy/nexus-1panel.sh`
|
||
- `deploy/nx`
|
||
|
||
## 迁移 / 重启
|
||
|
||
- 无需 DB 迁移;仅需 `git pull` 更新 host 脚本。
|
||
- 可选:`sudo nx cron` 或菜单 `[e]` 安装 crontab。
|
||
|
||
## 验证
|
||
|
||
```bash
|
||
bash -n deploy/mysql_dump_to_file.sh deploy/install_ops_cron.sh deploy/db_backup.sh
|
||
sudo bash deploy/mysql_dump_to_file.sh --output /tmp/nexus-test.sql --root /opt/nexus
|
||
ls -lh /var/backups/nexus/
|
||
sudo nx cron && crontab -l | grep nexus
|
||
```
|