46 lines
1.3 KiB
Python
46 lines
1.3 KiB
Python
|
|
"""
|
||
|
|
检查后端日志,找出问题
|
||
|
|
"""
|
||
|
|
import paramiko, time
|
||
|
|
|
||
|
|
NAS_HOST = "100.85.152.112"
|
||
|
|
NAS_PORT = 22
|
||
|
|
NAS_USER = "simon"
|
||
|
|
NAS_PASS = "Nas82829330"
|
||
|
|
NAS_DEPLOY_PATH = "/volume1/docker/gaokao-portal"
|
||
|
|
DOCKER = f"echo '{NAS_PASS}' | sudo -S /usr/local/bin/docker"
|
||
|
|
COMPOSE = f"{DOCKER} compose"
|
||
|
|
|
||
|
|
c = paramiko.SSHClient()
|
||
|
|
c.set_missing_host_key_policy(paramiko.AutoAddPolicy())
|
||
|
|
c.connect(NAS_HOST, NAS_PORT, NAS_USER, NAS_PASS, timeout=20)
|
||
|
|
|
||
|
|
def run(cmd, desc="", timeout=30):
|
||
|
|
if desc:
|
||
|
|
print(f"[{desc}]")
|
||
|
|
stdin, stdout, stderr = c.exec_command(cmd, timeout=timeout)
|
||
|
|
time.sleep(1)
|
||
|
|
ch = stdout.channel
|
||
|
|
out = b""
|
||
|
|
while not ch.exit_status_ready():
|
||
|
|
if ch.recv_ready():
|
||
|
|
out += ch.recv(4096)
|
||
|
|
time.sleep(0.2)
|
||
|
|
while ch.recv_ready():
|
||
|
|
out += ch.recv(4096)
|
||
|
|
return out.decode().strip()
|
||
|
|
|
||
|
|
# 1. 检查后端日志
|
||
|
|
run(f"cd {NAS_DEPLOY_PATH} && {COMPOSE} logs backend", "后端日志")
|
||
|
|
|
||
|
|
# 2. 检查 seed 文件是否存在
|
||
|
|
run(f"ls -la {NAS_DEPLOY_PATH}/backend/seed_data.py", "seed文件")
|
||
|
|
|
||
|
|
# 3. 手动运行 seed
|
||
|
|
run(f"cd {NAS_DEPLOY_PATH}/backend && python3 seed_data.py 2>&1", "手动运行seed")
|
||
|
|
|
||
|
|
# 4. 检查数据库
|
||
|
|
db_path = f"{NAS_DEPLOY_PATH}/backend/data/gaokao.db"
|
||
|
|
run(f"ls -la {db_path}", "数据库文件")
|
||
|
|
|
||
|
|
c.close()
|