Files
Nexus/docs/changelog/2026-06-06-nx-god-menu-audit-round4-mysql-backup-cron.md
2026-07-08 22:31:31 +08:00

38 lines
1.5 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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:00crontab。
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
```