import paramiko, time, json NAS_HOST = "100.85.152.112" NAS_PORT = 22 NAS_USER = "simon" NAS_PASS = "Nas82829330" def exec_and_read(c, cmd, wait=3): """执行命令并等待输出""" stdin, stdout, stderr = c.exec_command(cmd) time.sleep(wait) # 确保命令完成 while not stdout.channel.exit_status_ready(): time.sleep(0.2) out = stdout.read().decode("utf-8", errors="replace") err = stderr.read().decode("utf-8", errors="replace") return out, err def main(): c = paramiko.SSHClient() c.set_missing_host_key_policy(paramiko.AutoAddPolicy()) c.connect(NAS_HOST, NAS_PORT, NAS_USER, NAS_PASS, timeout=15) # 1. 删除数据库 exec_and_read(c, "rm -f /volume1/docker/gaokao-portal/backend/data/gaokao.db", wait=2) print(" [删除] gaokao.db") # 2. 重启后端 docker = "echo 'Nas82829330' | sudo -S /usr/local/bin/docker" exec_and_read(c, f"{docker} restart gaokao-portal-backend-1", wait=3) print(" [重启] 后端容器") # 等待后端完全启动 print(" 等待启动...") time.sleep(12) # 3. 查询问卷列表 out, err = exec_and_read(c, "curl -s http://localhost:8080/api/questionnaires", wait=3) try: data = json.loads(out) print(f"\n问卷数量: {len(data)}") for i, q in enumerate(data, 1): print(f" {i}. {q['title']}") except Exception as ex: print(f" 解析: {ex}") print(f" 结果: {out[:300]}") c.close() print("\n MBTI 问卷已添加!") if __name__ == "__main__": main()