120 lines
3.1 KiB
JavaScript
120 lines
3.1 KiB
JavaScript
const moment = require("moment/moment");
|
|
const zulip = require("zulip-js");
|
|
const { exec } = require("child_process");
|
|
|
|
const sendNotification = async () => {
|
|
try {
|
|
const config = {
|
|
username: "networktool-bot@zulip.ipsupply.com.au",
|
|
apiKey: "0jMAmOuhfLvBqKJikv5oAkyNM4RIEoAM",
|
|
realm: "https://zulip.ipsupply.com.au",
|
|
};
|
|
const client = await zulip(config);
|
|
let auto1 = "";
|
|
let auto2 = "";
|
|
let log = "";
|
|
|
|
exec("nc -zv 172.16.7.13 8002", (error, stdout, stderr) => {
|
|
if (error) {
|
|
// console.error(`Error executing command: ${error.message}`);
|
|
return;
|
|
}
|
|
|
|
if (stdout !== "") {
|
|
auto1 += stdout;
|
|
} else {
|
|
auto1 += stderr;
|
|
}
|
|
});
|
|
|
|
exec("nc -zv 172.16.7.13 5000", (error, stdout, stderr) => {
|
|
if (error) {
|
|
// console.error(`Error executing command: ${error.message}`);
|
|
return;
|
|
}
|
|
|
|
if (stdout !== "") {
|
|
auto2 += stdout;
|
|
} else {
|
|
auto2 += stderr;
|
|
}
|
|
});
|
|
|
|
exec("nc -zv 172.16.6.23 7777", (error, stdout, stderr) => {
|
|
if (error) {
|
|
exec("/root/.nvm/versions/node/v16.14.0/bin/pm2 restart all", (error, stdout, stderr) => {
|
|
if (error) {
|
|
console.log("RESTART: ", stdout);
|
|
let params = {
|
|
type: "stream",
|
|
to: "networkToolBot",
|
|
topic: "Log service",
|
|
content: "Can't restart server. Please check!\n```\n"+error+"\n```",
|
|
};
|
|
|
|
client.messages.send(params);
|
|
}
|
|
// console.log("RESTART: ", stdout);
|
|
let params = {
|
|
type: "stream",
|
|
to: "networkToolBot",
|
|
topic: "Log service",
|
|
content: "Restarting ...",
|
|
};
|
|
|
|
client.messages.send(params);
|
|
});
|
|
return;
|
|
}
|
|
if (stdout !== "") {
|
|
log += stdout;
|
|
} else {
|
|
log += stderr;
|
|
}
|
|
});
|
|
|
|
setTimeout(async () => {
|
|
console.log({ auto1: auto1, auto2: auto2, log: log });
|
|
|
|
if (process.argv[2] === "daily") {
|
|
let autoStatus =
|
|
auto1?.includes("succeeded") && auto2?.includes("succeeded")
|
|
? ":check:"
|
|
: ":red_circle:";
|
|
let logStatus = log?.includes("succeeded") ? ":check:" : ":red_circle:";
|
|
|
|
let time = moment(Date.now()).format("HH:mm - DD/MM");
|
|
let content =
|
|
"| |Server| System time| Status \n|---|:---:|:---|:---:\n|1|auto.danielvu.com|**" +
|
|
time +
|
|
"**|" +
|
|
autoStatus +
|
|
"|\n|2|logs.danielvu.com|**" +
|
|
time +
|
|
"**|" +
|
|
logStatus +
|
|
"|";
|
|
let params = {
|
|
type: "stream",
|
|
to: "System Logs",
|
|
topic: "stream events",
|
|
content: content,
|
|
};
|
|
|
|
// let params = {
|
|
// type: "stream",
|
|
// to: "Result test - auto.nswteam.net",
|
|
// topic: "AU-dev",
|
|
// content: content,
|
|
// };
|
|
|
|
await client.messages.send(params);
|
|
}
|
|
}, 5000);
|
|
} catch (error) {
|
|
console.log(error);
|
|
}
|
|
};
|
|
|
|
sendNotification();
|