Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/SunilWang/node-os-utils
OS Utils - An operating system utility library.
https://github.com/SunilWang/node-os-utils
Last synced: 6 days ago
JSON representation
OS Utils - An operating system utility library.
- Host: GitHub
- URL: https://github.com/SunilWang/node-os-utils
- Owner: SunilWang
- License: mit
- Created: 2017-07-09T10:23:20.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2022-06-14T01:18:37.000Z (over 2 years ago)
- Last Synced: 2024-05-15T13:09:14.991Z (6 months ago)
- Language: JavaScript
- Homepage: https://www.npmjs.com/package/node-os-utils
- Size: 87.9 KB
- Stars: 123
- Watchers: 3
- Forks: 19
- Open Issues: 11
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
## 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](https://img.shields.io/badge/code_style-standard-brightgreen.svg)](https://standardjs.com)
[![Build Status](https://api.travis-ci.org/SunilWang/node-os-utils.svg?branch=master)](https://travis-ci.org/SunilWang/node-os-utils)
[![NPM Version][npm-image]][npm-url]
[![NPM Downloads][downloads-image]][downloads-url]An operating system utility library. Some methods are wrappers of node libraries and others are calculations made by the module.
[os-utils](https://github.com/oscmejia/os-utils) extended
## Installation
One line installation with [npm](http://npmjs.org).
```bash
$ npm install node-os-utils --save
```
Then in your code## Example
```js
var osu = require('node-os-utils')
var cpu = osu.cpuvar 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`.
```js
var osu = require('node-os-utils')
var osCmd = osu.osCmdosCmd
.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
```js
var osu = require('node-os-utils')
var cpu = osu.cpuvar 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
```js
var osu = require('node-os-utils')
var cpu = osu.cpucpu.usage()
.then(info => {
console.log(info)
})
```
```
10.06
```#### cpu.free(interval):Promise(number)
cpu free percentage
- [interval]: number - interval millisecond. defaulta: 1000
```js
var osu = require('node-os-utils')
var cpu = osu.cpucpu.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
```js
var osu = require('node-os-utils')
var drive = osu.drivedrive.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
```js
var osu = require('node-os-utils')
var mem = osu.memmem.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])
```js
var osu = require('node-os-utils')
var netstat = osu.netstatnetstat.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
```js
var osu = require('node-os-utils')
var netstat = osu.netstatnetstat.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)
......```js
var bucket = require('./bucket')
var exec = require('./exec')
var wrapExec = exec.wrapExecbucket.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](LICENSE). Copyright (c).
[npm-image]: https://img.shields.io/npm/v/node-os-utils.svg
[npm-url]: https://www.npmjs.com/package/node-os-utils
[downloads-image]: https://img.shields.io/npm/dt/node-os-utils.svg
[downloads-url]: https://npmjs.org/package/node-os-utils