Files
2026gaokaozhiyuan/restart_mbti.py
T

53 lines
1.6 KiB
Python
Raw Normal View History

2026-06-24 13:11:34 +08:00
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()