const os = require('os');
var dealTime = (seconds) => {
var seconds = seconds | 0;
var day = (seconds / (3600 * 24)) | 0;
var hours = ((seconds - day * 3600) / 3600) | 0;
var minutes = ((seconds - day * 3600 * 24 - hours * 3600) / 60) | 0;
var second = seconds % 60;
(day < 10) && (day = '0' + day);
(hours < 10) && (hours = '0' + hours);
(minutes < 10) && (minutes = '0' + minutes);
(second < 10) && (second = '0' + second);
return [day, hours, minutes, second].join(':');
};
var dealMem = (mem) => {
var G = 0,
M = 0,
KB = 0;
(mem > (1 << 30)) && (G = (mem / (1 << 30)).toFixed(2));
(mem > (1 << 20)) && (mem > (1 << 10)) && (mem > (1 << 20)) && (KB = (mem / (1 << 10)).toFixed(2));
return G > 0 ? G + 'G' : M > 0 ? M + 'M' : KB > 0 ? KB + 'KB' : mem + 'B';
};
const arch = os.arch();
console.log("cpu架构:" + arch);
const kernel = os.type();
console.log("操作系统内核:" + kernel);
const pf = os.platform();
console.log("平台:" + pf);
const uptime = os.uptime();
console.log("开机时间:" + dealTime(uptime));
const hn = os.hostname();
console.log("主机名:" + hn);
const hdir = os.homedir();
console.log("主目录:" + hdir);
const totalMem = os.totalmem();
const freeMem = os.freemem();
console.log("内存大小:" + dealMem(totalMem) + ' 空闲内存:' + dealMem(freeMem));
const cpus = os.cpus();
console.log('*****cpu信息*******');
cpus.forEach((cpu, idx, arr) => {
var times = cpu.times;
console.log(`cpu${idx}:`);
console.log(`型号:${cpu.model}`);
console.log(`频率:${cpu.speed}MHz`);
console.log(`使用率:${((1 - times.idle / (times.idle + times.user + times.nice + times.sys + times.irq)) * 100).toFixed(2)}%`);
});
console.log('*****网卡信息*******');
const networksObj = os.networkInterfaces();
for (let nw in networksObj) {
let objArr = networksObj[nw];
console.log(`\r\n${nw}:`);
objArr.forEach((obj, idx, arr) => {
console.log(`地址:${obj.address}`);
console.log(`掩码:${obj.netmask}`);
console.log(`物理地址:${obj.mac}`);
console.log(`协议族:${obj.family}`);
});
}