Files
bigwo/mcp-server-ssh/check_fresh_logs.js
2026-03-12 12:47:56 +08:00

51 lines
1.7 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import { Client } from "ssh2";
const SSH_CONFIG = {
host: "119.45.10.34",
port: 22,
username: "root",
password: "#xyzh%CS#2512@28",
readyTimeout: 10000,
};
function sshExec(command) {
return new Promise((resolve, reject) => {
const conn = new Client();
let stdout = "";
let stderr = "";
conn.on("ready", () => {
conn.exec(command, (err, stream) => {
if (err) { conn.end(); return reject(err); }
stream.on("close", (code) => { conn.end(); resolve({ stdout, stderr, code }); });
stream.on("data", (d) => { stdout += d.toString(); });
stream.stderr.on("data", (d) => { stderr += d.toString(); });
});
}).on("error", (err) => reject(err)).connect(SSH_CONFIG);
});
}
async function main() {
console.log("=== 检查 PM2 状态 ===");
const pm2Status = await sshExec("pm2 list");
console.log(pm2Status.stdout);
console.log("\n=== 检查语法(在服务器上直接运行 node --check ===");
const checkSyntax = await sshExec("cd /www/wwwroot/demo.tensorgrove.com.cn && node --check server/routes/voice.js 2>&1 || echo 'Check complete'");
console.log(checkSyntax.stdout);
console.log(checkSyntax.stderr);
console.log("\n=== 健康检查 ===");
const health = await sshExec("curl -s http://127.0.0.1:3012/api/health 2>&1");
console.log("Health Check:", health.stdout);
console.log("\n=== 最近一次通话的服务器日志 ===");
const logs = await sshExec("pm2 logs bigwo-server --nostream --lines 100");
console.log(logs.stdout);
console.log("\n=== 错误日志 ===");
const errorLogs = await sshExec("tail -n 100 /var/log/bigwo/server-error.log");
console.log(errorLogs.stdout);
}
main().catch(e => { console.error("Fatal:", e.message); process.exit(1); });