Files
bigwo/mcp-server-ssh/check_server_file.js

61 lines
2.2 KiB
JavaScript
Raw Permalink Normal View History

2026-03-12 12:47:56 +08:00
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("=== 检查服务器上的 voice.js 文件 ===");
const check = await sshExec("cd /www/wwwroot/demo.tensorgrove.com.cn && ls -la server/routes/voice.js");
console.log(check.stdout);
console.log("\n=== 读取服务器上 voice.js 的关键部分 (第 400-440 行) ===");
const read = await sshExec("cd /www/wwwroot/demo.tensorgrove.com.cn && sed -n '400,440p' server/routes/voice.js");
console.log(read.stdout);
console.log("\n=== 检查 PM2 进程信息 ===");
const pm2Info = await sshExec("pm2 describe bigwo-server --silent | head -30");
console.log(pm2Info.stdout);
console.log("\n=== 停止 PM2 并彻底清除缓存 ===");
await sshExec("pm2 delete bigwo-server 2>/dev/null || true");
await sshExec("cd /www/wwwroot/demo.tensorgrove.com.cn && rm -rf node_modules/.cache 2>/dev/null || true");
console.log("\n=== 重新启动 PM2 ===");
const restart = await sshExec("cd /www/wwwroot/demo.tensorgrove.com.cn && pm2 start ecosystem.config.js");
console.log(restart.stdout);
console.log("\n=== 等待 3 秒 ===");
await new Promise(r => setTimeout(r, 3000));
console.log("\n=== 检查 PM2 状态 ===");
const pm2Status = await sshExec("pm2 list");
console.log(pm2Status.stdout);
console.log("\n=== 最新日志 (最近 30 行) ===");
const logs = await sshExec("pm2 logs bigwo-server --nostream --lines 30");
console.log(logs.stdout);
}
main().catch(e => { console.error("Fatal:", e.message); process.exit(1); });