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);}