complete rewrite, based on iostat instead of /proc/stats, gives more interactive and detailed feedback
This commit is contained in:
@ -1,41 +1,70 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
|
LOWTHRESHOLD="1.01"
|
||||||
|
HIGHTHRESHOLD="30.2"
|
||||||
REFRESHRATE=1
|
REFRESHRATE=1
|
||||||
|
|
||||||
LEDCONTROLLER="/usr/bin/ledcontroller"
|
LEDCONTROLLER="/usr/bin/ledcontroller"
|
||||||
|
|
||||||
iowaitCounter="$(grep 'cpu ' /proc/stat | cut -f 9 -d ' ')"
|
|
||||||
$LEDCONTROLLER blue
|
|
||||||
ledcolor="blue"
|
|
||||||
|
|
||||||
while (true); do
|
iostat -c "$REFRESHRATE" | while read iostatOutput; do
|
||||||
|
|
||||||
iowaitTemp="$(grep 'cpu ' /proc/stat | cut -f 9 -d ' ')"
|
iowaitPercent="$(echo "$iostatOutput" | grep -vE "Linux|avg|^$" | awk '{print $4}')"
|
||||||
|
|
||||||
# echo "iowaitCounter=$iowaitCounter, iowaitTemp=$iowaitTemp"
|
[ -z "$iowaitPercent" ] || \
|
||||||
|
if (( $(bc <<< "$iowaitPercent > $LOWTHRESHOLD") == 0 )); then
|
||||||
|
|
||||||
if (( "$iowaitCounter" == "$iowaitTemp" )); then
|
$LEDCONTROLLER blue
|
||||||
|
|
||||||
if [ "$ledcolor" != "blue" ]; then
|
elif (( $(bc <<< "$iowaitPercent > $HIGHTHRESHOLD") == 0 )); then
|
||||||
|
|
||||||
$LEDCONTROLLER blue
|
$LEDCONTROLLER green
|
||||||
ledcolor="blue"
|
|
||||||
|
|
||||||
fi
|
|
||||||
|
|
||||||
else
|
else
|
||||||
|
|
||||||
iowaitCounter="$iowaitTemp"
|
$LEDCONTROLLER red
|
||||||
|
|
||||||
if [ "$ledcolor" != "red" ]; then
|
|
||||||
|
|
||||||
$LEDCONTROLLER red;
|
|
||||||
ledcolor="red"
|
|
||||||
|
|
||||||
fi
|
|
||||||
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
sleep "$REFRESHRATE";
|
|
||||||
|
|
||||||
done
|
done
|
||||||
|
|
||||||
|
|
||||||
|
# This is an older version of the code, which used /proc/stats to do a similar job.
|
||||||
|
|
||||||
|
#iowaitCounter="$(grep 'cpu ' /proc/stat | cut -f 9 -d ' ')"
|
||||||
|
#$LEDCONTROLLER blue
|
||||||
|
#ledcolor="blue"
|
||||||
|
#
|
||||||
|
#while (true); do
|
||||||
|
#
|
||||||
|
# iowaitTemp="$(grep 'cpu ' /proc/stat | cut -f 9 -d ' ')"
|
||||||
|
#
|
||||||
|
## echo "iowaitCounter=$iowaitCounter, iowaitTemp=$iowaitTemp"
|
||||||
|
#
|
||||||
|
# if (( "$iowaitCounter" == "$iowaitTemp" )); then
|
||||||
|
#
|
||||||
|
# if [ "$ledcolor" != "blue" ]; then
|
||||||
|
#
|
||||||
|
# $LEDCONTROLLER blue
|
||||||
|
# ledcolor="blue"
|
||||||
|
#
|
||||||
|
# fi
|
||||||
|
#
|
||||||
|
# else
|
||||||
|
#
|
||||||
|
# iowaitCounter="$iowaitTemp"
|
||||||
|
#
|
||||||
|
# if [ "$ledcolor" != "red" ]; then
|
||||||
|
#
|
||||||
|
# $LEDCONTROLLER red;
|
||||||
|
# ledcolor="red"
|
||||||
|
#
|
||||||
|
# fi
|
||||||
|
#
|
||||||
|
# fi
|
||||||
|
#
|
||||||
|
# sleep "$REFRESHRATE";
|
||||||
|
#
|
||||||
|
#done
|
||||||
|
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user