Socket
Socket
Sign inDemoInstall

node-os-utils

Package Overview
Dependencies
0
Maintainers
1
Versions
23
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    node-os-utils

An operating system utility library.


Version published
Weekly downloads
86K
increased by5.52%
Maintainers
1
Install size
36.1 kB
Created
Weekly downloads
 

Readme

Source

Description

monitor vital signs of your server :

  • CPU average usage
  • Free and used drive space
  • Free and used memory space
  • Operating System
  • All processes running
  • TTY/SSH opened
  • Total opened files
  • Network speed (input and output)

node-os-utils

JavaScript Style Guide Build Status NPM Version NPM Downloads

An operating system utility library. Some methods are wrappers of node libraries and others are calculations made by the module.

os-utils extended

Installation

One line installation with npm.

$ npm install node-os-utils --save

Then in your code

Example

var osu = require('node-os-utils')
var cpu = osu.cpu

var count = cpu.count() // 8

cpu.usage()
  .then(cpuPercentage => {
    console.log(cpuPercentage) // 10.38
  })

var osCmd = osu.osCmd

osCmd.whoami()
  .then(userName => {
    console.log(userName) // admin
  })

Configuration

require('node-os-utils').options

Default settings:

  • NOT_SUPPORTED_VALUE is not supported. os not supported, return value.
  • INTERVAL is 1000 millisecond. Represents the refresh of the cpu and network workers.

:warning: If this module uses too much CPU, set the INTERVAL value to 10000 or more.

Info

If you have not supported in some categories, your OS configuration is not supported for this option.

You can use require('node-os-utils').isNotSupported() to decide not supported.

var osu = require('node-os-utils')
var osCmd = osu.osCmd

osCmd
  .topCpu()
  .then(function(res){
    if(osu.isNotSupported(res)){
      // Handle 'not supported'
    }else{
      // Things to do...
    }
  })

Usage

The following methods are available:

require('node-os-utils').cpu

cpu.average():object

CPU average

var osu = require('node-os-utils')
var cpu = osu.cpu

var info = cpu.average()

console.log(info)
{ totalIdle: 33526410,
  totalTick: 37460330,
  avgIdle: 4190801.25,
  avgTotal: 4682541.25 }
cpu.usage(interval):Promise(number)

CPU average usage

  • [interval]: number - interval millisecond. defaulta: 1000
var osu = require('node-os-utils')
var cpu = osu.cpu

cpu.usage()
  .then(info => {
    console.log(info)
  })
10.06
cpu.free(interval):Promise(number)

cpu free percentage

  • [interval]: number - interval millisecond. defaulta: 1000
var osu = require('node-os-utils')
var cpu = osu.cpu

cpu.free()
  .then(info => {
    console.log(info)
  })
89.26
cpu.count():number
cpu.model():string
cpu.loadavg():Array[number]
cpu.loadavgTime(time):number
  • time: number - 1, 5 or 15 minutes, defaulta: 1

require('node-os-utils').drive

drive.info():Promise(Object)

drive info

var osu = require('node-os-utils')
var drive = osu.drive

drive.info()
  .then(info => {
    console.log(info)
  })

{ totalGb: '464.8',
  usedGb: '147.7',
  freeGb: '316.9',
  usedPercentage: '31.8',
  freePercentage: '68.2' }
drive.free():Promise(Object)
{ totalGb: '464.8', freeGb: '316.9', freePercentage: '68.2' }
drive.used():Promise(Object)
{ totalGb: '464.8', usedGb: '316.9', usedPercentage: '68.2' }

require('node-os-utils').mem

mem.info():Promise(Object)

memory info

var osu = require('node-os-utils')
var mem = osu.mem

mem.info()
  .then(info => {
    console.log(info)
  })

{ totalMemMb: 16384,
  usedMemMb: 13403.41,
  freeMemMb: 2980.59,
  freeMemPercentage: 18.19 }
mem.free():Promise(Object)
{ totalMemMb: 16384, freeMemMb: 3033.63 }
mem.used():Promise(Object)
{ totalMemMb: 16384, usedMemMb: 13421.15 }
mem.totalMem():number
17179869184

require('node-os-utils').netstat

netstat.stats():Promise(Array[Object])
var osu = require('node-os-utils')
var netstat = osu.netstat

netstat.stats()
  .then(info => {
    console.log(info)
  })

[ { interface: 'lo',
    inputBytes: '731508412',
    outputBytes: '731508412' },
  { interface: 'eth0',
    inputBytes: '1356471479',
    outputBytes: '26631036763' } ]
netstat.inOut(interval):Promise(Object)
  • [interval]: number - interval millisecond. defaulta: 1000
var osu = require('node-os-utils')
var netstat = osu.netstat

netstat.inOut()
  .then(info => {
    console.log(info)
  })

{ total: { inputMb: 0.02, outputMb: 1.22 },
  eth0: { inputMb: 0.02, outputMb: 1.22 } }

require('node-os-utils').openfiles

openfiles.openFd():Promise(number)

Total opened files

1088

require('node-os-utils').os

os.oos():Promise(string)

original operating system

Mac OS X 10.12.5
Red Hat 7.3
os.platform():string
os.uptime():number - (seconds)
os.ip():string
os.hostname():string
os.type():string
os.arch():string

require('node-os-utils').proc

proc.totalProcesses():Promise(number)
proc.zombieProcesses():Promise(number)

require('node-os-utils').users

users.openedCount():Promise(number)

TTY/SSH opened


require('node-os-utils').osCmd

osCmd.topCpu():Promise(string)
osCmd.topMem():Promise(string)
osCmd.vmstats():Promise(string)

......

var bucket = require('./bucket')
var exec = require('./exec')
var wrapExec = exec.wrapExec

bucket.osCmd = {
  topCpu: wrapExec('ps -eo pcpu,user,args --no-headers | sort -k 1 -n | tail -n 10 | sort -k 1 -nr | cut -c 1-70'),
  topMem: wrapExec('ps -eo pmem,pid,cmd | sort -k 1 -n | tail -n 10 | sort -k 1 -nr | cut -c 1-70'),
  vmstats: wrapExec('vmstat -S m'),
  processesUsers: wrapExec('ps hax -o user | sort | uniq -c'),
  diskUsage: wrapExec('df -h'),
  who: wrapExec('who'),
  whoami: wrapExec('whoami'),
  openPorts: wrapExec('lsof -Pni4 | grep ESTABLISHED'),
  ifconfig: wrapExec('ifconfig')
}

License

MIT. Copyright (c).

Keywords

FAQs

Last updated on 14 Jun 2022

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc