"""用 docker cp 复制文件""" import os, paramiko c = paramiko.SSHClient() c.set_missing_host_key_policy(paramiko.AutoAddPolicy()) c.connect("207.57.129.228", port=19717, username="root", password=os.environ["REMOTE_PASS"], timeout=30, allow_agent=False, look_for_keys=False) # 直接用 docker cp si, so, se = c.exec_command("bash -lc 'cd /srv/news && docker cp diag.sql $(docker compose ps -q postgres):/tmp/diag.sql && docker compose exec -T postgres psql -U $POSTGRES_USER -d $POSTGRES_DB -f /tmp/diag.sql'", timeout=30) print(so.read().decode(errors="replace")) c.close()