Files
diary-news/scripts/_run_deploy.py

24 lines
921 B
Python
Raw Normal View History

import os, paramiko
HOST, PORT, USER = "207.57.129.228", 19717, "root"
PW = os.environ["REMOTE_PASS"]
c = paramiko.SSHClient()
c.set_missing_host_key_policy(paramiko.AutoAddPolicy())
c.connect(HOST, port=PORT, username=USER, password=PW, timeout=15, allow_agent=False, look_for_keys=False)
# 1) 推更新后的部署脚本
sftp = c.open_sftp()
sftp.put("D:/selftools/diary-news/scripts/deploy_remote.sh", "/root/deploy_news.sh")
sftp.chmod("/root/deploy_news.sh", 0o755)
sftp.close()
print("[ok] script pushed")
# 2) 杀掉旧进程(若有)
si, so, se = c.exec_command("pkill -f deploy_news.sh 2>/dev/null; sleep 2; echo done")
print(so.read().decode().strip())
# 3) 后台启动,设 SSHD_PORT=19717
si, so, se = c.exec_command("nohup env SSHD_PORT=19717 bash /root/deploy_news.sh > /root/deploy_news.log 2>&1 & echo $!", timeout=10)
pid = so.read().decode().strip()
print(f"[ok] deploy started, PID={pid}")
c.close()