1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
|
#!/bin/bash
#
# display available system resources as padded non-decimal percentage digits
# CPU = current cpu usage
# MEM = current memory in use percentage
# HD = current percentage of hard drive in use
# debug mode - to turn on, set to 1 (run script manually to see debug outputs)
DEBUG=0
# set valid icon path if you want an icon displayed before output
# if you don't want an icon, comment out the line
#ICON=
ICON=/home/toz/.icons/taskman.png
# get CPU info
CPU=$(cat <(grep 'cpu ' /proc/stat) <(sleep 1 && grep 'cpu ' /proc/stat) | awk -v RS="" '{printf("%02d", ($13-$2+$15-$4)*100/($13-$2+$15-$4+$16-$5))}')
[ $DEBUG -eq 1 ] && echo "DEBUG: cpu -> "$CPU
CPULOAD=$(uptime | tr -s " " | cut -d' ' -f9-)
[ $DEBUG -eq 1 ] && echo "DEBUG: cpu load -> "$CPULOAD
TOPCPU=$(ps aux --no-headers | awk '{print $3 " " $11}' | sort -rn | head -n 5)
# get memory info
MEMTOT=$(cat /proc/meminfo | grep MemTotal | awk '{printf ("% 0.1f", $2/1024000)}')
[ $DEBUG -eq 1 ] && echo "DEBUG: mem total-> "$MEMTOT
MEMAVA=$(cat /proc/meminfo | grep MemAvailable | awk '{printf ("%0.1f", $2/1024000)}')
[ $DEBUG -eq 1 ] && echo "DEBUG: mem availalbe-> "$MEMAVA
MEMUSAGE=$(free | grep Mem | awk '{printf("%02d", $3/$2 * 100.0)}')
[ $DEBUG -eq 1 ] && echo "DEBUG: mem usage-> "$MEMUSAGE
MEMUSAGE2=$(echo "$MEMTOT GB in use")
[ $DEBUG -eq 1 ] && echo "DEBUG: mem usage tooltip -> "$MEMUSAGE2
MEMUSED=$(echo "scale=2;($MEMTOT - $MEMAVA)" | bc)
TOPMEM=$(ps aux --no-headers | awk '{print $4 " " $11}' | sort -rn | head -n 5)
# get hard drive usage info
HD=$(df -hl /dev/sda1 | grep sda1 | awk '{printf ("%02d", $5)}' | sed -e 's/%//')
[ $DEBUG -eq 1 ] && echo "DEBUG: hd -> "$HD
HDUSED=$(df -hl /dev/sda1 | grep sda1 | awk '{print $3}' | sed -e 's/G//')
HDSIZE=$(df -hl /dev/sda1 | grep sda1 | awk '{print $2}' | sed -e 's/G//')
[ $DEBUG -eq 1 ] && echo "DEBUG: hd size -> $HDSIZE GB drive capacity"
TOPHD=$(df -hl /dev/sda1 | tail -1)
# do the genmon
[ $DEBUG -eq 1 ] && echo "DEBUG: genmon output"
if [ -z $ICON ]; then
ICO_STR=""
else
ICO_STR="<img>$ICON</img>"
fi
echo "$ICO_STR<txt> $CPU | $MEMUSAGE | $HD </txt><txtclick>xfce4-taskmanager</txtclick>
<tool>-=CPU $CPULOAD=-
$TOPCPU
-=MEM: $MEMUSED of $MEMUSAGE2=-
$TOPMEM
-=HD usage: $HDUSED of $HDSIZE GB in use=-
$TOPHD</tool>"
exit 0
|