Node.js 의 내장 모듈 중 OS 관련 정보를 추출하는데 유용하고 편리한,
https://nodejs.org/api/os.html
바로 코드부터 보시죠.
var os = require('os'); console.log("** os.tmpdir = " + os.tmpdir()); console.log("** os.endianness = " + os.endianness()); console.log("** os.hostname = " + os.hostname()); console.log("** os.type = " + os.type()); console.log("** os.platform = " + os.platform()); console.log("** os.arch = " + os.arch()); console.log("** os.release = " + os.release()); console.log("** os.uptime = " + os.uptime()); console.log("** os.loadavg = " + os.loadavg()); console.log("** os.totalmem = " + os.totalmem()); console.log("** os.freemem = " + os.freemem()); console.log("** os.cpus = " + os.cpus()); console.log("** os.networkInterfaces = " + os.networkInterfaces()); console.log("** os.EOL = " + os.EOL);
실행하여 봅니다.
# ./node osinfo.js ** os.tmpdir = /tmp ** os.endianness = LE ** os.hostname = TESTSERVER ** os.type = Linux ** os.platform = linux ** os.arch = x64 ** os.release = 2.6.32-279.el6.x86_64 ** os.uptime = 11368746 ** os.loadavg = 0,0,0 ** os.totalmem = 1969029120 ** os.freemem = 382750720 ** os.cpus = [object Object] ** os.networkInterfaces = [object Object] ** os.EOL =
그런데 os.cpus(), os.networkInterfaces() 는 표시되지 않네요. 이 둘은 array 로 리턴하기 때문입니다. 그래서 아래와 같이 코드를 수정합니다. JSON.stringify 에 대해서는 https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify 을 확인하시면 됩니다.
var os = require('os'); console.log("** os.tmpdir = " + os.tmpdir()); console.log("** os.endianness = " + os.endianness()); console.log("** os.hostname = " + os.hostname()); console.log("** os.type = " + os.type()); console.log("** os.platform = " + os.platform()); console.log("** os.arch = " + os.arch()); console.log("** os.release = " + os.release()); console.log("** os.uptime = " + os.uptime()); console.log("** os.loadavg = " + os.loadavg()); console.log("** os.totalmem = " + os.totalmem()); console.log("** os.freemem = " + os.freemem()); console.log("** os.cpus = " + JSON.stringify(os.cpus(),null,2)); console.log("** os.networkInterfaces = " + JSON.stringify(os.networkInterfaces(),null,2)); console.log("** os.EOL = " + os.EOL);
그리고 다시 실행합니다.
# ./node osinfo.js ** os.tmpdir = /tmp ** os.endianness = LE ** os.hostname = TESTSERVER ** os.type = Linux ** os.platform = linux ** os.arch = x64 ** os.release = 2.6.32-279.el6.x86_64 ** os.uptime = 11369138 ** os.loadavg = 0,0,0 ** os.totalmem = 1969029120 ** os.freemem = 382623744 ** os.cpus = [ { "model": "AMD Opteron(tm) Processor 6380 ", "speed": 2500, "times": { "user": 1025130800, "nice": 214300, "sys": 1011348600, "idle": 110629538500, "irq": 30918300 } } ] ** os.networkInterfaces = { "lo": [ { "address": "127.0.0.1", "netmask": "255.0.0.0", "family": "IPv4", "mac": "00:00:00:00:00:00", "internal": true }, { "address": "::1", "netmask": "ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff", "family": "IPv6", "mac": "00:00:00:00:00:00", "scopeid": 0, "internal": true } ], "eth0": [ { "address": "10.0.0.1", "netmask": "255.255.0.0", "family": "IPv4", "mac": "**:**:**:**:**:**", "internal": false }, { "address": "****::****:****:****:****", "netmask": "ffff:ffff:ffff:ffff::", "family": "IPv6", "mac": "**:**:**:**:**:**", "scopeid": 2, "internal": false } ] } ** os.EOL =