servius
Version:
Servius is a comprehensive npm package for server monitoring,providing tracking of CPU load, free memory, disk usage, process count, and other important system resources. It also offers details on CPU, server uptime, last boot time, OS, disk partitions,pr
42 lines (31 loc) • 1.83 kB
JavaScript
const shelljs = require("shelljs");
// Disk Start
const VirtualDisk = (raw) => {
raw = raw || false
let total = raw ? shelljs.exec("df --output=size / | awk 'NR==2 {print $1}'", {silent: true}).stdout.trim() : bytestohuman(shelljs.exec("df --output=size / | awk 'NR==2 {print $1}'", {silent: true}).stdout.trim())
let used = raw ? shelljs.exec("df --output=used / | awk 'NR==2 {print $1}'", {silent: true}).stdout.trim() : bytestohuman(shelljs.exec("df --output=used / | awk 'NR==2 {print $1}'", {silent: true}).stdout.trim())
let avail = raw ? shelljs.exec("df --output=avail / | awk 'NR==2 {print $1}'", {silent: true}).stdout.trim() : bytestohuman(shelljs.exec("df --output=avail / | awk 'NR==2 {print $1}'", {silent: true}).stdout.trim())
let perc = raw ? shelljs.exec("df --output=pcent / | awk 'NR==2 {print $1}'", {silent: true}).stdout.trim() : shelljs.exec("df --output=pcent / | awk 'NR==2 {print $1}'", {silent: true}).stdout.trim()
return JSON.parse(JSON.stringify({total: total, used: used, available: avail, used_perc: perc}))
}
const DiskPart = () => {
let parts = shelljs.exec('lsblk --noheadings --list --output NAME,FSTYPE,SIZE,MOUNTPOINT', {silent: true}).stdout.trim()
parts = parts.split('\n')
let part = []
parts.forEach(element => {
const [name, fstype, size, mountpoint] = element.match(/\S+/g)
part.push({name, fstype, size, mountpoint})
})
return part
}
// Disk End
module.exports = {DiskPart, VirtualDisk}
// Handlers
const bytestohuman = (bytes) => {
const sizes = ['KB', 'MB', 'GB', 'TB'];
if (bytes == 0) return '0 B';
const i = parseInt(Math.floor(Math.log(bytes) / Math.log(1024)));
const size = bytes / Math.pow(1024, i);
const formattedSize = parseFloat(size.toFixed(2));
return `${formattedSize} ${sizes[i]}`;
}