#!/bin/bash function filesize { awk 'BEGIN{ x = '$1' split("B KB MB GB TB PB",type) for(i=5;y < 1;i--) y = x / (2^(10*i)) str=int(y*10)/10 if (x==0) { str = "0" } print str }' || return $? } cores=$( grep -c processor /proc/cpuinfo ) load=$( cat /proc/loadavg | cut -d" " -f3 | tr -d [:cntrl:] ) echo -n "L:$load/$cores M:" # used + cached = total - free free=$( grep ^MemFree /proc/meminfo | tr -d -c [:digit:] ) cache=$( grep ^Cached /proc/meminfo | tr -d -c [:digit:] ) total=$( grep ^MemTotal /proc/meminfo | tr -d -c [:digit:] ) used=$( echo $total $free $cache | awk '{ print $1 -$2 -$3 }' ) used=$( filesize $used ) cache=$( filesize $cache ) total=$( filesize $total ) echo -n "$used+$cache/$total U:" ps a --format user| grep -v -e root -e USER | sort -u | wc -l | tr -c -d [:digit:] # exit okay true