import paramiko, sys sys.stdout.reconfigure(encoding='utf-8', errors='replace') c = paramiko.SSHClient(); c.set_missing_host_key_policy(paramiko.AutoAddPolicy()) c.connect('101.79.17.164', username='root', password='1q2w3e!Q', timeout=15) def run(label, cmd, timeout=15): _, o, _ = c.exec_command(cmd, timeout=timeout) print(f'\n[{label}]\n' + o.read().decode('utf-8','replace').strip()[:800]) run('npm 에러 상세', 'curl -sf -u "admin:Admin@2026!" http://127.0.0.1:9080/job/zioinfo-mail/4/consoleText 2>/dev/null | ' "grep -A5 -B2 'npm\\|error\\|ERROR\\|FAIL\\|exit'") run('package.json 있는지', 'ls -la /var/lib/jenkins/workspace/zioinfo-mail/frontend/package.json 2>/dev/null') run('package-lock.json 있는지', 'ls -la /var/lib/jenkins/workspace/zioinfo-mail/frontend/package-lock.json 2>/dev/null && ' 'wc -l /var/lib/jenkins/workspace/zioinfo-mail/frontend/package-lock.json') run('node/npm 버전', 'node --version; npm --version') c.close()