centos

如何通过JS日志监控CentOS系统健康

小樊
81
2025-02-08 23:36:12
栏目: 编程语言

要通过JavaScript监控CentOS系统的健康状况,您可以使用Node.js编写一个简单的脚本,该脚本可以执行一些系统命令并记录输出。以下是一个示例脚本,用于检查CPU使用率、内存使用情况、磁盘空间和网络接口状态:

  1. 首先,确保您已经在CentOS系统上安装了Node.js。如果没有,请参考Node.js官方文档进行安装。

  2. 创建一个新的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}`);
});
  1. 保存脚本并在终端中运行它:
node system_health.js

这将输出系统的CPU使用率、内存使用情况、磁盘空间使用情况以及活动网络接口。您可以根据需要修改脚本以获取其他系统信息。

请注意,这个脚本使用了Node.js的child_process模块来执行系统命令。这种方法在大多数情况下都能正常工作,但在某些特殊情况下可能会遇到权限问题。为了解决这个问题,您可以使用sudo运行脚本,但请确保您了解sudo的使用限制和风险。

0
看了该问题的人还看了