要通過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
的使用限制和風險。