htop barras de status em motd

1

Gostaria de colocar as barras de status htop , que mostram a porcentagem de uso e memória da CPU, em meu MOTD, para que, sempre que eu fizer login, eu tenha uma visão geral do status de integridade dos sistemas.

Alguma ideia de como conseguir isso?

ATUALIZAÇÃO: Especialmente a visualização com barras de porcentagem é o que eu quero. Não apenas os valores.

    
por Ethan Leroy 18.04.2014 / 21:32

2 respostas

1

Eu fiz do meu jeito. (desculpe por tanto código bash)

#
# cpu usage
#
cpu_cores=$(cat /proc/cpuinfo | grep "processor" | wc -l)
i=0
cpu_out_1=($(cat /proc/stat | grep "cpu"))
# the longer we sleep the more accurate is the calculated percentage
sleep 0.3
cpu_out_2=($(cat /proc/stat | grep "cpu"))

cpu_out_colcount=($(cat /proc/stat | head -n 1))
cpu_out_colcount=${#cpu_out_colcount[@]}

while [ $i -lt $cpu_cores ]; do
    cpu_index=$(($i * $cpu_out_colcount + $cpu_out_colcount + 1))
    cpu_load_1=(${cpu_out_1[@]:$cpu_index:4})
    cpu_load_2=(${cpu_out_2[@]:$cpu_index:4})
    cpu_sum_1=$((cpu_load_1[0] + cpu_load_1[1] + cpu_load_1[2] + cpu_load_1[3]))
    cpu_sum_2=$((cpu_load_2[0] + cpu_load_2[1] + cpu_load_2[2] + cpu_load_2[3]))
    cpu_sum_diff=$((cpu_sum_2 - cpu_sum_1))
    cpu_idle_1=${cpu_load_1[3]}
    cpu_idle_2=${cpu_load_2[3]}
    cpu_idle_diff=$((cpu_idle_2 - cpu_idle_1))
    cpu_perc=$((100 - (100 * $cpu_idle_diff / $cpu_sum_diff)))
    printf "${COLOR_HEADER}"
    printf '  CPU %-2d ' "$i"
    printf "${COLOR_NONE}"
    print_bar $cpu_perc 30 60
    printf "\n"
    i=$((i+1));
done;

E print_bar é uma função que gera uma barra de porcentagem colorida:

function print_bar() {
    prcntg=$1
    warn=$2
    crit=$3
    bar_color=$COLOR_OK
    if [ $prcntg -gt $warn ]; then
        bar_color=$COLOR_WARN
    fi
    if [ $prcntg -gt $crit ]; then
        bar_color=$COLOR_CRIT
    fi

    bar_width_fill=$((BAR_WIDTH * prcntg / 100))
    bar_width_empty=$((BAR_WIDTH - bar_width_fill))

    printf -v bar "%${bar_width_fill}s" ""
    printf -v nbar "%${bar_width_empty}s" ""
    printf "${bar_color}"
    printf '%3d%% %s' "$prcntg" "${bar// /█}"
    printf "${COLOR_NONE}"
    printf '%s' "${nbar// /▒}"
}
    
por 19.04.2014 / 21:30
0

verifique isso:

link

especialmente a resposta do autor do htop - Hisham H M

resposta curta: você não pode fazer isso, use ps

    
por 19.04.2014 / 00:57

Tags