12345678910111213141516171819202122232425262728293031 |
- load_representation=(░ ▒ ▓ █)
- thresholds=(0 16.7 50 83.3 100)
- # Requires mpstat from the sysstat package.
- load() {
- nboxes=$(nproc)
- load=$(awk '{print $1}' /proc/loadavg)
- loads=$(mpstat -P ALL -u 5 1 | tail -$nboxes | awk '{print 100-$NF}' | sort -n -r)
- for L in $loads; do
- for level in $(seq 0 ${#load_representation[*]}); do
- test_str="$L >= ${thresholds[$level]} && $L <= ${thresholds[$(( level + 1 ))]}"
- if (( $(bc -l <<< "${test_str}") )); then
- printf "%s" "${load_representation[$level]}"
- break
- fi
- done
- done
- }
- load_file=/tmp/load_summary
- while true; do
- load > "$load_file"
- sleep 1
- done &
- show_load() {
- cat "$load_file"
- }
- register+=('show_load')
|