41 lines
1.1 KiB
JavaScript
41 lines
1.1 KiB
JavaScript
|
|
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() {
|
||
|
|
const cmd = process.argv[2] || "echo 'Usage: node fetch_logs.js <command>'";
|
||
|
|
try {
|
||
|
|
const r = await sshExec(cmd);
|
||
|
|
if (r.stdout) process.stdout.write(r.stdout);
|
||
|
|
if (r.stderr) process.stderr.write(r.stderr);
|
||
|
|
process.exit(r.code || 0);
|
||
|
|
} catch (e) {
|
||
|
|
console.error("Error:", e.message);
|
||
|
|
process.exit(1);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
main();
|