要通过JavaScript日志监控Debian系统状态,你可以使用Node.js的child_process
模块来执行系统命令并获取输出。以下是一个简单的示例,展示了如何使用JavaScript和Node.js监控Debian系统的CPU使用率、内存使用情况和磁盘空间。
首先,确保你已经安装了Node.js。如果没有,请访问Node.js官方网站下载并安装。
然后,创建一个名为system_monitor.js
的文件,并将以下代码粘贴到其中:
const { exec } = require('child_process');
// 获取CPU使用率
function getCpuUsage(callback) {
exec('top -bn1 | grep load | awk \'{printf("CPU Usage: %.2f%%\\n", $(NF-2))}\'', (error, stdout, stderr) => {
if (error) {
console.error(`Error getting CPU usage: ${error}`);
return;
}
callback(stdout);
});
}
// 获取内存使用情况
function getMemoryUsage(callback) {
exec('free -m | grep Mem | awk \'{printf("Memory Usage: %.2f%%\\n", $(3)/$(2)*100)}\'', (error, stdout, stderr) => {
if (error) {
console.error(`Error getting memory usage: ${error}`);
return;
}
callback(stdout);
});
}
// 获取磁盘空间
function getDiskSpace(callback) {
exec('df -h | grep / | awk \'{printf("Disk Space: %s/%s (%.2f%%)\\n", $3, $2, $5)}\'', (error, stdout, stderr) => {
if (error) {
console.error(`Error getting disk space: ${error}`);
return;
}
callback(stdout);
});
}
// 每隔一段时间(例如5秒)执行一次监控
setInterval(() => {
getCpuUsage((cpuUsage) => console.log(cpuUsage));
getMemoryUsage((memoryUsage) => console.log(memoryUsage));
getDiskSpace((diskSpace) => console.log(diskSpace));
}, 5000);
保存文件后,在终端中运行以下命令以启动监控脚本:
node system_monitor.js
这将每隔5秒输出一次系统的CPU使用率、内存使用情况和磁盘空间。你可以根据需要调整setInterval
中的时间间隔。
请注意,这个示例仅用于演示目的,实际生产环境中可能需要更复杂的监控和错误处理。另外,你可以考虑使用现有的开源监控工具,如Prometheus和Grafana,以获得更强大和灵活的系统监控功能。