From 8cbadb61604667b407b53ee1258433994fa4765a Mon Sep 17 00:00:00 2001 From: coasteen Date: Thu, 9 Jul 2026 10:42:28 +0330 Subject: init --- local/bin/sb-cpuusage | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100755 local/bin/sb-cpuusage (limited to 'local/bin/sb-cpuusage') diff --git a/local/bin/sb-cpuusage b/local/bin/sb-cpuusage new file mode 100755 index 0000000..c05576b --- /dev/null +++ b/local/bin/sb-cpuusage @@ -0,0 +1,30 @@ +#!/bin/sh +#Display CPU usage percentage + +_openbsd() { + CPUS=$(sysctl | grep 'hw.ncpuonline' | sed 's/^.*=//') + TOTALUSAGE=$(ps aux | awk '{print $3}' | sed '1d' | sort | paste -s -d+ - | bc) + USAGE=$(printf "$TOTALUSAGE / $CPUS\n" | bc -l) + printf "$USAGE" | grep "^\.[0-9]" > /dev/null && printf "0$(printf $USAGE | cut -c1-3)%%" || printf "$(printf "$USAGE" | cut -c1-4)%%\n" +} + +_freebsd() { + CPUS="$(sysctl hw.ncpu | sed 's/^.*: //')" + FREE=$(ps -o %cpu -p $(pgrep -S idle) | tail -n 1) + TPP=$(expr $CPUS \* 100) + TOTALUSAGE=$(printf "$TPP - $FREE" | bc -l) + USAGE=$(printf "$TOTALUSAGE / $CPUS" | bc -l | cut -c -4) + printf "$USAGE" | egrep "\.[0-9]{3}" > /dev/null && printf "0$(printf $USAGE | cut -c -3)%%\n" || printf -- "$USAGE%%\n" +} + +_linux() { + TOTALUSAGE="$(ps axch -o cmd,%cpu --sort=-%cpu | sed 's/ //' | grep -E -o " [0-9].*" | sed 's/ //' | paste -s -d+ - | bc)" + USAGE="$(printf "$(printf "$TOTALUSAGE / $(nproc)\n" | bc -l | cut -c1-4)%%\n")" + printf -- "$USAGE%" | grep "^\.[0-9]" > /dev/null && printf -- "0$(printf -- $USAGE% | cut -c1-3)%%" || printf -- "$(printf -- "$USAGE%" | cut -c1-4)%%\n" +} + +case $(uname) in + Linux) _linux ;; + OpenBSD) _openbsd ;; + FreeBSD) _freebsd ;; +esac -- cgit v1.2.3