let { exec } = require('child_process');
let fs = require('fs');
let path = require('path');
setInterval(() => {
gainSystemMessage();
}, 1000);
/**
* 获取系统cpu消耗前十的进程
*/
function gainSystemMessage() {
//top 资源管理器 -b 全部进程 -n 执行次数 1 ,| head -n 17 管道处理获取前17行
let shellStr = 'top -b -n 1 | head -n 17';
exec(shellStr, (error, stdout, srderr) => {
if (error) {
console.log('>>>>>', error);
} else {
if (stdout) {
// 按行划分
let strs = stdout.split('\n');
// 第三行是cpu
let cpuStr = strs[2].split(',');
// 第四个是cpu空闲率
let id = cpuStr[3].split(' ')[1];
console.log('111', id);
// cpu空闲率小于50时写到日志文件中
if (id < 50) {
writeLog(stdout);
}
//执行成功返回
// console.log(stdout);
}
}
});
}
/**
* 将数据写到日志里
* @param {*} str 要写的数据
*/
function writeLog(str) {
str += '\n\n\n';
let pathStr = path.join(__dirname + '/logs');
if (!fs.existsSync(pathStr)) {
fs.mkdirSync(pathStr);
}
let date = new Date();
let day =
date.getFullYear() + '-' + (date.getMonth() + 1) + '-' + date.getDate();
let filePath = pathStr + '/' + day + '.log';
// 往日志文件追加内容
fs.appendFileSync(filePath, str);
}