feat: 平台预设字典+凭证加密+分库备份+Agent采集+移动端优先前端重做

This commit is contained in:
gouki
2026-08-01 23:10:31 +00:00
parent 1dac5d8735
commit e672086b67
31 changed files with 1792 additions and 421 deletions
+56
View File
@@ -0,0 +1,56 @@
#!/usr/bin/env bash
# 数据库分库备份脚本
# 用法:backup.sh [assets|metrics|all]
# assets -> 备份 assets.db,保留 14 份(建议每日)
# metrics -> 备份 metrics.db,保留 4 份(建议每周)
# all -> 两者都备份
set -euo pipefail
APP_DIR="${APP_DIR:-/opt/vps-manager}"
cd "$APP_DIR"
TARGET="${1:-all}"
python3 - "$TARGET" <<'PYEOF'
import sqlite3
import sys
from datetime import datetime
from pathlib import Path
target = sys.argv[1]
data_dir = Path("data")
backup_root = data_dir / "backups"
ts = datetime.now().strftime("%Y%m%d_%H%M%S")
def backup(db_name: str, keep: int) -> None:
src = data_dir / db_name
stem = db_name.replace(".db", "")
if not src.exists():
print(f"[skip] {db_name} 不存在")
return
out_dir = backup_root / stem
out_dir.mkdir(parents=True, exist_ok=True)
dst = out_dir / f"{stem}_{ts}.db"
con = sqlite3.connect(str(src))
bkp = sqlite3.connect(str(dst))
con.backup(bkp)
bkp.close()
con.close()
files = sorted(
out_dir.glob(f"{stem}_*.db"),
key=lambda p: p.stat().st_mtime,
reverse=True,
)
for old in files[keep:]:
old.unlink()
print(f"[ok] {db_name} -> {dst}(保留 {keep} 份)")
if target in ("assets", "all"):
backup("assets.db", 14)
if target in ("metrics", "all"):
backup("metrics.db", 4)
PYEOF
+10
View File
@@ -0,0 +1,10 @@
# 资产库备份服务(oneshot,由 timer 触发)
# 部署位置:/etc/systemd/system/vps-backup-assets.service
[Unit]
Description=Backup vps-manager assets.db
After=network-online.target
[Service]
Type=oneshot
ExecStart=/opt/vps-manager/deploy/backup.sh assets
+13
View File
@@ -0,0 +1,13 @@
# 资产库每日备份定时器
# 部署位置:/etc/systemd/system/vps-backup-assets.timer
[Unit]
Description=Daily backup of vps-manager assets.db
[Timer]
OnCalendar=daily
Persistent=true
Unit=vps-backup-assets.service
[Install]
WantedBy=timers.target
+10
View File
@@ -0,0 +1,10 @@
# 日志/监控库备份服务(oneshot,由 timer 触发)
# 部署位置:/etc/systemd/system/vps-backup-metrics.service
[Unit]
Description=Backup vps-manager metrics.db
After=network-online.target
[Service]
Type=oneshot
ExecStart=/opt/vps-manager/deploy/backup.sh metrics
+13
View File
@@ -0,0 +1,13 @@
# 日志/监控库每周备份定时器
# 部署位置:/etc/systemd/system/vps-backup-metrics.timer
[Unit]
Description=Weekly backup of vps-manager metrics.db
[Timer]
OnCalendar=weekly
Persistent=true
Unit=vps-backup-metrics.service
[Install]
WantedBy=timers.target