1. 개요
os 모듈을 사용하여 운영체제의 메모리, 플랫폼, 운영시간과 같은 정보를 표시할 수 있다.
os 모듈은 내장된 모듈이며 운영체제와 관련된 메서드와 속성을 제공한다.
2. 사용법
먼저 os 모듈을 선언합니다.
var os = require('os');
os 모듈에 정의된 메서드를 사용하면 해당 정보를 쉽게 표시할 수 있다.
- os.hostname() - 호스트 이름
- os.type() - 운영체제 형태
- os.uptime() - 운영시간
- os.totalmem() - 전체 메모리 크기
3. 예제
운영체제와 시스템 정보를 표시하는 예제이다.
소스코드와 실행 결과를 보면 쉽 게 알 수 있다.
/** os : Operation System */
var os = require('os');
console.log("os.hostname() = " + os.hostname());
console.log("os.type() = " + os.type());
console.log("os.platform() = " + os.platform());
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.networkInterfaces() = " + os.networkInterfaces());
실행 결과
os.hostname() = DESKTOP-LTQ49UU
os.type() = Windows_NT
os.platform() = win32
os.release() = 10.0.19044
os.uptime() = 21366
os.loadavg() = 0,0,0
os.totalmem() = 21378908160
os.freemem() = 10654990336
os.networkInterfaces() =
{
'VMware Network Adapter VMnet1': [
{
address: 'fe80::9492:d89d:a1ab:69ff',
netmask: 'ffff:ffff:ffff:ffff::',
family: 'IPv6',
mac: '00:50:56:c0:00:01',
internal: false,
cidr: 'fe80::9492:d89d:a1ab:69ff/64',
scopeid: 12
},
{
address: '192.168.112.1',
netmask: '255.255.255.0',
family: 'IPv4',
mac: '00:50:56:c0:00:01',
internal: false,
cidr: '192.168.112.1/24'
}
],
'VMware Network Adapter VMnet8': [
{
address: 'fe80::9100:4da6:cbc3:9d77',
netmask: 'ffff:ffff:ffff:ffff::',
family: 'IPv6',
mac: '00:50:56:c0:00:08',
internal: false,
cidr: 'fe80::9100:4da6:cbc3:9d77/64',
scopeid: 2
},
{
address: '192.168.70.2',
netmask: '255.255.255.0',
family: 'IPv4',
mac: '00:50:56:c0:00:08',
internal: false,
cidr: '192.168.70.2/24'
}
],
'Wi-Fi': [
{
address: 'fe80::79e2:7f47:b045:225b',
netmask: 'ffff:ffff:ffff:ffff::',
family: 'IPv6',
mac: '08:d4:0c:69:48:44',
internal: false,
cidr: 'fe80::79e2:7f47:b045:225b/64',
scopeid: 9
},
{
address: '192.168.45.197',
netmask: '255.255.255.0',
family: 'IPv4',
mac: '08:d4:0c:69:48:44',
internal: false,
cidr: '192.168.45.197/24'
}
],
'Loopback Pseudo-Interface 1': [
{
address: '::1',
netmask: 'ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff',
family: 'IPv6',
mac: '00:00:00:00:00:00',
internal: true,
cidr: '::1/128',
scopeid: 0
},
{
address: '127.0.0.1',
netmask: '255.0.0.0',
family: 'IPv4',
mac: '00:00:00:00:00:00',
internal: true,
cidr: '127.0.0.1/8'
}
]
}
아래의 코드를 실행해 보면 os 모듈에 정의된 메서드를 확인할 수 있다.
var os = require('os');
console.dir(os);
실행 결과
{
arch: [Function: arch] {
[Symbol(Symbol.toPrimitive)]: [Function (anonymous)]
},
cpus: [Function: cpus],
endianness: [Function: endianness] {
[Symbol(Symbol.toPrimitive)]: [Function (anonymous)]
},
freemem: [Function: getFreeMem] {
[Symbol(Symbol.toPrimitive)]: [Function (anonymous)]
},
getPriority: [Function: getPriority],
homedir: [Function: __node_internal_checkError] {
[Symbol(Symbol.toPrimitive)]: [Function (anonymous)]
},
hostname: [Function: __node_internal_checkError] {
[Symbol(Symbol.toPrimitive)]: [Function (anonymous)]
},
loadavg: [Function: loadavg],
networkInterfaces: [Function: networkInterfaces],
platform: [Function: platform] {
[Symbol(Symbol.toPrimitive)]: [Function (anonymous)]
},
release: [Function: getOSRelease] {
[Symbol(Symbol.toPrimitive)]: [Function (anonymous)]
},
setPriority: [Function: setPriority],
tmpdir: [Function: tmpdir] {
[Symbol(Symbol.toPrimitive)]: [Function (anonymous)]
},
totalmem: [Function: getTotalMem] {
[Symbol(Symbol.toPrimitive)]: [Function (anonymous)]
},
type: [Function: getOSType] {
[Symbol(Symbol.toPrimitive)]: [Function (anonymous)]
},
userInfo: [Function: userInfo],
uptime: [Function: getUptime] {
[Symbol(Symbol.toPrimitive)]: [Function (anonymous)]
},
version: [Function: getOSVersion] {
[Symbol(Symbol.toPrimitive)]: [Function (anonymous)]
},
constants: [Object: null prototype] {
UV_UDP_REUSEADDR: 4,
dlopen: [Object: null prototype] {},
errno: [Object: null prototype] {
E2BIG: 7,
EACCES: 13,
... (생략)...
os 모듈에 정의된 메서드 중에 눈에 보이는 몇 개를 다시 실행해 보았다.
var os = require('os');
console.log("os.arch() = " + os.arch());
console.log("os.platform() = " + os.platform());
console.log("os.version() = " + os.version());
console.log("");
console.log("os.cpus() = ");
console.log(os.cpus());
실행 결과
os.arch() = x64
os.platform() = win32
os.version() = Windows 10 Pro
os.cpus() =
[
{
model: 'Intel(R) Core(TM) i7-6700HQ CPU @ 2.60GHz',
speed: 2592,
times: {
user: 15294500,
nice: 0,
sys: 10345859,
idle: 24410609,
irq: 1297953
}
},
{
model: 'Intel(R) Core(TM) i7-6700HQ CPU @ 2.60GHz',
speed: 2592,
times: {
user: 6854734,
nice: 0,
sys: 5771171,
idle: 37424828,
irq: 121468
}
},
{
model: 'Intel(R) Core(TM) i7-6700HQ CPU @ 2.60GHz',
speed: 2592,
times: {
user: 12329265,
nice: 0,
sys: 9219218,
idle: 28502250,
irq: 70984
}
},
{
model: 'Intel(R) Core(TM) i7-6700HQ CPU @ 2.60GHz',
speed: 2592,
times: {
user: 7096921,
nice: 0,
sys: 6628781,
idle: 36325031,
irq: 60265
}
},
{
model: 'Intel(R) Core(TM) i7-6700HQ CPU @ 2.60GHz',
speed: 2592,
times: {
user: 12796828,
nice: 0,
sys: 8360703,
idle: 28893203,
irq: 71203
}
},
{
model: 'Intel(R) Core(TM) i7-6700HQ CPU @ 2.60GHz',
speed: 2592,
times: {
user: 8298453,
nice: 0,
sys: 6740875,
idle: 35011406,
irq: 49250
}
},
{
model: 'Intel(R) Core(TM) i7-6700HQ CPU @ 2.60GHz',
speed: 2592,
times: {
user: 10350015,
nice: 0,
sys: 8320609,
idle: 31380109,
irq: 53546
}
},
{
model: 'Intel(R) Core(TM) i7-6700HQ CPU @ 2.60GHz',
speed: 2592,
times: {
user: 19599421,
nice: 0,
sys: 7247109,
idle: 23204203,
irq: 52890
}
}
]
4. 참조 URL
728x90
'■ Front-End ■ > Node.js' 카테고리의 다른 글
[Node.js] querystring 모듈을 사용하여 쿼리스트링 파싱 (0) | 2023.02.26 |
---|---|
[Node.js] url (Uniform Resource Locator)모듈로 URL을 파싱 (0) | 2023.02.26 |
[Node.js] crypto 모듈 - 해시코드 생성, 문자열 암호화 및 복호화 (0) | 2023.02.26 |
[Node.js] w3cschool의 MySQL 튜토리얼 실행할 때 유용한 팁 (0) | 2023.02.26 |
[Node.js] exports와 require를 사용하여 모듈을 구성한다. (0) | 2023.02.26 |
댓글