要通过JavaScript监控CentOS系统的健康状况,您可以使用Node.js编写一个简单的脚本,该脚本可以执行一些系统命令并记录输出。以下是一个示例脚本,用于检查CPU使用率、内存使用情况、磁盘空间和网络接口状态:
首先,确保您已经在CentOS系统上安装了Node.js。如果没有,请参考Node.js官方文档进行安装。
创建一个新的JavaScript文件,例如system_health.js
,并在其中编写以下代码:
const { exec } = require('child_process');
// 获取CPU使用率
exec('top -bn1 | grep "Cpu(s)" | sed "s/.*, *\([0-9.]*\)%* id.*/\1/" | awk '{print 100 - $1"%"}', (error, stdout, stderr) => {
if (error) {
console.error(`Error getting CPU usage: ${error.message}`);
return;
}
console.log(`CPU Usage: ${stdout}`);
});
// 获取内存使用情况
exec('free -m | awk 'NR==2{printf "%.2f%%", $3*100/$2 }', (error, stdout, stderr) => {
if (error) {
console.error(`Error getting memory usage: ${error.message}`);
return;
}
console.log(`Memory Usage: ${stdout}`);
});
// 获取磁盘空间使用情况
exec('df -h | awk '$NF=="/"{printf "%.2f%%", $5*100/$NF}', (error, stdout, stderr) => {
if (error) {
console.error(`Error getting disk space usage: ${error.message}`);
return;
}
console.log(`Disk Space Usage: ${stdout}`);
});
// 获取网络接口状态
exec('ip addr show | grep "inet " | awk '{print $2}' | cut -d/ -f1', (error, stdout, stderr) => {
if (error) {
console.error(`Error getting network interfaces: ${error.message}`);
return;
}
console.log(`Active Network Interfaces: ${stdout}`);
});
node system_health.js
这将输出系统的CPU使用率、内存使用情况、磁盘空间使用情况以及活动网络接口。您可以根据需要修改脚本以获取其他系统信息。
请注意,这个脚本使用了Node.js的child_process
模块来执行系统命令。这种方法在大多数情况下都能正常工作,但在某些特殊情况下可能会遇到权限问题。为了解决这个问题,您可以使用sudo
运行脚本,但请确保您了解sudo
的使用限制和风险。