#!/bin/bash # clean-test-traces.sh — 清理冒烟/测试账号在后台留下的全部痕迹(账号+会话+访问记录) # 在服务器上执行: ssh xyh@192.168.100.133 'bash -s' < scripts/clean-test-traces.sh # 每轮冒烟(SMOKE_USER模式)或手动验证后必须跑一次 set -e sudo docker exec -i zhaopin-admin node - <<'EOF' const D = require("better-sqlite3"); const db = new D("/data/admin/users.db"); const marks = ["smoketest", "testsuper", "hr01", "t", "hr_debug", "dbg", "dbg_user", "时区测试"]; const ph = marks.map(() => "?").join(","); const u = db.prepare(`SELECT COUNT(*) c FROM users WHERE username IN (${ph})`).get(...marks).c; const a = db.prepare(`SELECT COUNT(*) c FROM access_log WHERE username IN (${ph})`).get(...marks).c; db.prepare(`DELETE FROM sessions WHERE uid IN (SELECT id FROM users WHERE username IN (${ph}))`).run(...marks); db.prepare(`DELETE FROM users WHERE username IN (${ph})`).run(...marks); db.prepare(`DELETE FROM access_log WHERE username IN (${ph})`).run(...marks); console.log(`已清理: 账号${u}个, 访问记录${a}条`); console.log("现存账号:", JSON.stringify(db.prepare("SELECT username,role FROM users").all())); EOF