Skip to content

Instantly share code, notes, and snippets.

@carlos-menezes
Created July 19, 2019 15:30
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save carlos-menezes/fc8713febddb88d9137b94fe851a8abd to your computer and use it in GitHub Desktop.
Save carlos-menezes/fc8713febddb88d9137b94fe851a8abd to your computer and use it in GitHub Desktop.
Bash system status utility.
#!/bin/bash
refresh=$1
verificacoesFeitas=0
trap tratarInterrupcao SIGINT; # Executar a função tratarInterrupcao quando CTRL + C for pressionado.
ARRAY_MEM=(0 0 0 0 0 0 0 0 0 0)
ARRAY_CPU=(0 0 0 0 0 0 0 0 0 0)
ARRAY_DSK=(0 0 0 0 0 0 0 0 0 0)
ARRAY_PS=(0 0 0 0 0 0 0 0 0 0)
ARRAY_TEMP=(0 0 0 0 0 0 0 0 0 0)
MEDIA_MEM=()
MEDIA_CPU=()
MEDIA_DSK=()
MEDIA_PS=()
MEDIA_TEMP=()
function tratarInterrupcao() {
TOTALMEDIAMEM=0
TOTALMEDIACPU=0
TOTALMEDIADSK=0
TOTALMEDIAPS=0
TOTALMEDIATEMP=0
for val in "${MEDIA_MEM[@]}"; do
(( TOTALMEDIAMEM+=$val ))
done
for val in "${MEDIA_CPU[@]}"; do
(( TOTALMEDIACPU+=$val ))
done
for val in "${MEDIA_DSK[@]}"; do
(( TOTALMEDIADSK+=$val ))
done
for val in "${MEDIA_PS[@]}"; do
(( TOTALMEDIAPS+=$val ))
done
for val in "${MEDIA_TEMP[@]}"; do
(( TOTALMEDIATEMP+=$val ))
done
clear
printf 'VERIFICAÇÔES FEITAS: %s | TEMPO DECORRIDO: (%dh:%dm:%ds)\n' $verificacoesFeitas $((($verificacoesFeitas*$refresh)/3600)) $((($verificacoesFeitas*$refresh)%3600/60)) $((($verificacoesFeitas*$refresh)%60))
echo -e "UTILIZAÇÃO MÉDIA DE MEMÓRIA: $(( $TOTALMEDIAMEM / ${#MEDIA_MEM[@]} ))%"
echo -e "UTILIZAÇÃO MÉDIA DE CPU: $(( $TOTALMEDIACPU / ${#MEDIA_CPU[@]} ))%"
echo -e "OCUPAÇÃO MÉDIA DO DISCO: $(( $TOTALMEDIADSK / ${#MEDIA_DSK[@]} ))%"
echo -e "MÉDIA DE PROCESSOS EM SIMULTÂNEO: $(( $TOTALMEDIAPS / ${#MEDIA_PS[@]} ))"
echo -e "TEMPERATURA MÉDIA DO CPU: $(( $TOTALMEDIATEMP / ${#MEDIA_TEMP[@]})) ºC"
exit 1;
}
function criarGraficos() {
declare -a graficoMEM
declare -a graficoCPU
declare -a graficoDSK
declare -a graficoPS
declare -a graficoTEMP
graficoCPU[0]=" CPU (%)"
graficoCPU[1]="100\u250C"
graficoCPU[2]=" 90\u251C"
graficoCPU[3]=" 80\u251C"
graficoCPU[4]=" 70\u251C"
graficoCPU[5]=" 60\u251C"
graficoCPU[6]=" 50\u251C"
graficoCPU[7]=" 40\u251C"
graficoCPU[8]=" 30\u251C"
graficoCPU[9]=" 20\u251C"
graficoCPU[10]=" 10\u251C"
graficoCPU[11]=" 0\u2534\u252C\u2500\u252C\u2500\u252C\u2500\u252C\u2500\u252C\u2500\u252C\u2500\u252C\u2500\u252C\u2500\u252C\u2500\u252C\u2500"
graficoMEM+=(" Memória (%)")
graficoDSK+=(" Disco (%)")
graficoPS+=(" Processos (x10)")
graficoTEMP+=(" Temperatura (ºC)")
for((i=1; i < 12; i++)); do
graficoMEM+=(" ${graficoCPU[$i]}")
graficoDSK+=(" ${graficoCPU[$i]}")
graficoPS+=(" ${graficoCPU[$i]}")
graficoTEMP+=(" ${graficoCPU[$i]}")
done
for val in "${ARRAY_MEM[@]}";
do
case $val in
0)
graficoMEM[10]+=" "
graficoMEM[9]+=" "
graficoMEM[8]+=" "
graficoMEM[7]+=" "
graficoMEM[6]+=" "
graficoMEM[5]+=" "
graficoMEM[4]+=" "
graficoMEM[3]+=" "
graficoMEM[2]+=" "
graficoMEM[1]+=" "
;;
10)
graficoMEM[10]+="\u2584 "
graficoMEM[9]+=" "
graficoMEM[8]+=" "
graficoMEM[7]+=" "
graficoMEM[6]+=" "
graficoMEM[5]+=" "
graficoMEM[4]+=" "
graficoMEM[3]+=" "
graficoMEM[2]+=" "
graficoMEM[1]+=" "
;;
20)
graficoMEM[10]+="\u2588 "
graficoMEM[9]+="\u2584 "
graficoMEM[8]+=" "
graficoMEM[7]+=" "
graficoMEM[6]+=" "
graficoMEM[5]+=" "
graficoMEM[4]+=" "
graficoMEM[3]+=" "
graficoMEM[2]+=" "
graficoMEM[1]+=" "
;;
30)
graficoMEM[10]+="\u2588 "
graficoMEM[9]+="\u2588 "
graficoMEM[8]+="\u2584 "
graficoMEM[7]+=" "
graficoMEM[6]+=" "
graficoMEM[5]+=" "
graficoMEM[4]+=" "
graficoMEM[3]+=" "
graficoMEM[2]+=" "
graficoMEM[1]+=" "
;;
40)
graficoMEM[10]+="\u2588 "
graficoMEM[9]+="\u2588 "
graficoMEM[8]+="\u2588 "
graficoMEM[7]+="\u2584 "
graficoMEM[6]+=" "
graficoMEM[5]+=" "
graficoMEM[4]+=" "
graficoMEM[3]+=" "
graficoMEM[2]+=" "
graficoMEM[1]+=" "
;;
50)
graficoMEM[10]+="\u2588 "
graficoMEM[9]+="\u2588 "
graficoMEM[8]+="\u2588 "
graficoMEM[7]+="\u2588 "
graficoMEM[6]+="\u2584 "
graficoMEM[5]+=" "
graficoMEM[4]+=" "
graficoMEM[3]+=" "
graficoMEM[2]+=" "
graficoMEM[1]+=" "
;;
60)
graficoMEM[10]+="\u2588 "
graficoMEM[9]+="\u2588 "
graficoMEM[8]+="\u2588 "
graficoMEM[7]+="\u2588 "
graficoMEM[6]+="\u2588 "
graficoMEM[5]+="\u2584 "
graficoMEM[4]+=" "
graficoMEM[3]+=" "
graficoMEM[2]+=" "
graficoMEM[1]+=" "
;;
70)
graficoMEM[10]+="\u2588 "
graficoMEM[9]+="\u2588 "
graficoMEM[8]+="\u2588 "
graficoMEM[7]+="\u2588 "
graficoMEM[6]+="\u2588 "
graficoMEM[5]+="\u2588 "
graficoMEM[4]+="\u2584 "
graficoMEM[3]+=" "
graficoMEM[2]+=" "
graficoMEM[1]+=" "
;;
80)
graficoMEM[10]+="\u2588 "
graficoMEM[9]+="\u2588 "
graficoMEM[8]+="\u2588 "
graficoMEM[7]+="\u2588 "
graficoMEM[6]+="\u2588 "
graficoMEM[5]+="\u2588 "
graficoMEM[4]+="\u2588 "
graficoMEM[3]+="\u2584 "
graficoMEM[2]+=" "
graficoMEM[1]+=" "
;;
90)
graficoMEM[10]+="\u2588 "
graficoMEM[9]+="\u2588 "
graficoMEM[8]+="\u2588 "
graficoMEM[7]+="\u2588 "
graficoMEM[6]+="\u2588 "
graficoMEM[5]+="\u2588 "
graficoMEM[4]+="\u2588 "
graficoMEM[3]+="\u2588 "
graficoMEM[2]+="\u2584 "
graficoMEM[1]+=" "
;;
100)
graficoMEM[10]+="\u2588 "
graficoMEM[9]+="\u2588 "
graficoMEM[8]+="\u2588 "
graficoMEM[7]+="\u2588 "
graficoMEM[6]+="\u2588 "
graficoMEM[5]+="\u2588 "
graficoMEM[4]+="\u2588 "
graficoMEM[3]+="\u2588 "
graficoMEM[2]+="\u2588 "
graficoMEM[1]+="\u2584 "
;;
esac
done
for valorCPU in "${ARRAY_CPU[@]}";
do
case $valorCPU in
0)
graficoCPU[10]+=" "
graficoCPU[9]+=" "
graficoCPU[8]+=" "
graficoCPU[7]+=" "
graficoCPU[6]+=" "
graficoCPU[5]+=" "
graficoCPU[4]+=" "
graficoCPU[3]+=" "
graficoCPU[2]+=" "
graficoCPU[1]+=" "
;;
10)
graficoCPU[10]+="\u2584 "
graficoCPU[9]+=" "
graficoCPU[8]+=" "
graficoCPU[7]+=" "
graficoCPU[6]+=" "
graficoCPU[5]+=" "
graficoCPU[4]+=" "
graficoCPU[3]+=" "
graficoCPU[2]+=" "
graficoCPU[1]+=" "
;;
20)
graficoCPU[10]+="\u2588 "
graficoCPU[9]+="\u2584 "
graficoCPU[8]+=" "
graficoCPU[7]+=" "
graficoCPU[6]+=" "
graficoCPU[5]+=" "
graficoCPU[4]+=" "
graficoCPU[3]+=" "
graficoCPU[2]+=" "
graficoCPU[1]+=" "
;;
30)
graficoCPU[10]+="\u2588 "
graficoCPU[9]+="\u2588 "
graficoCPU[8]+="\u2584 "
graficoCPU[7]+=" "
graficoCPU[6]+=" "
graficoCPU[5]+=" "
graficoCPU[4]+=" "
graficoCPU[3]+=" "
graficoCPU[2]+=" "
graficoCPU[1]+=" "
;;
40)
graficoCPU[10]+="\u2588 "
graficoCPU[9]+="\u2588 "
graficoCPU[8]+="\u2588 "
graficoCPU[7]+="\u2584 "
graficoCPU[6]+=" "
graficoCPU[5]+=" "
graficoCPU[4]+=" "
graficoCPU[3]+=" "
graficoCPU[2]+=" "
graficoCPU[1]+=" "
;;
50)
graficoCPU[10]+="\u2588 "
graficoCPU[9]+="\u2588 "
graficoCPU[8]+="\u2588 "
graficoCPU[7]+="\u2588 "
graficoCPU[6]+="\u2584 "
graficoCPU[5]+=" "
graficoCPU[4]+=" "
graficoCPU[3]+=" "
graficoCPU[2]+=" "
graficoCPU[1]+=" "
;;
60)
graficoCPU[10]+="\u2588 "
graficoCPU[9]+="\u2588 "
graficoCPU[8]+="\u2588 "
graficoCPU[7]+="\u2588 "
graficoCPU[6]+="\u2588 "
graficoCPU[5]+="\u2584 "
graficoCPU[4]+=" "
graficoCPU[3]+=" "
graficoCPU[2]+=" "
graficoCPU[1]+=" "
;;
70)
graficoCPU[10]+="\u2588 "
graficoCPU[9]+="\u2588 "
graficoCPU[8]+="\u2588 "
graficoCPU[7]+="\u2588 "
graficoCPU[6]+="\u2588 "
graficoCPU[5]+="\u2588 "
graficoCPU[4]+="\u2584 "
graficoCPU[3]+=" "
graficoCPU[2]+=" "
graficoCPU[1]+=" "
;;
80)
graficoCPU[10]+="\u2588 "
graficoCPU[9]+="\u2588 "
graficoCPU[8]+="\u2588 "
graficoCPU[7]+="\u2588 "
graficoCPU[6]+="\u2588 "
graficoCPU[5]+="\u2588 "
graficoCPU[4]+="\u2588 "
graficoCPU[3]+="\u2584 "
graficoCPU[2]+=" "
graficoCPU[1]+=" "
;;
90)
graficoCPU[10]+="\u2588 "
graficoCPU[9]+="\u2588 "
graficoCPU[8]+="\u2588 "
graficoCPU[7]+="\u2588 "
graficoCPU[6]+="\u2588 "
graficoCPU[5]+="\u2588 "
graficoCPU[4]+="\u2588 "
graficoCPU[3]+="\u2588 "
graficoCPU[2]+="\u2584 "
graficoCPU[1]+=" "
;;
100)
graficoCPU[10]+="\u2588 "
graficoCPU[9]+="\u2588 "
graficoCPU[8]+="\u2588 "
graficoCPU[7]+="\u2588 "
graficoCPU[6]+="\u2588 "
graficoCPU[5]+="\u2588 "
graficoCPU[4]+="\u2588 "
graficoCPU[3]+="\u2588 "
graficoCPU[2]+="\u2588 "
graficoCPU[1]+="\u2584 "
;;
esac
done
for valorDSK in "${ARRAY_DSK[@]}";
do
case $valorDSK in
0)
graficoDSK[10]+=" "
graficoDSK[9]+=" "
graficoDSK[8]+=" "
graficoDSK[7]+=" "
graficoDSK[6]+=" "
graficoDSK[5]+=" "
graficoDSK[4]+=" "
graficoDSK[3]+=" "
graficoDSK[2]+=" "
graficoDSK[1]+=" "
;;
10)
graficoDSK[10]+="\u2584 "
graficoDSK[9]+=" "
graficoDSK[8]+=" "
graficoDSK[7]+=" "
graficoDSK[6]+=" "
graficoDSK[5]+=" "
graficoDSK[4]+=" "
graficoDSK[3]+=" "
graficoDSK[2]+=" "
graficoDSK[1]+=" "
;;
20)
graficoDSK[10]+="\u2588 "
graficoDSK[9]+="\u2584 "
graficoDSK[8]+=" "
graficoDSK[7]+=" "
graficoDSK[6]+=" "
graficoDSK[5]+=" "
graficoDSK[4]+=" "
graficoDSK[3]+=" "
graficoDSK[2]+=" "
graficoDSK[1]+=" "
;;
30)
graficoDSK[10]+="\u2588 "
graficoDSK[9]+="\u2588 "
graficoDSK[8]+="\u2584 "
graficoDSK[7]+=" "
graficoDSK[6]+=" "
graficoDSK[5]+=" "
graficoDSK[4]+=" "
graficoDSK[3]+=" "
graficoDSK[2]+=" "
graficoDSK[1]+=" "
;;
40)
graficoDSK[10]+="\u2588 "
graficoDSK[9]+="\u2588 "
graficoDSK[8]+="\u2588 "
graficoDSK[7]+="\u2584 "
graficoDSK[6]+=" "
graficoDSK[5]+=" "
graficoDSK[4]+=" "
graficoDSK[3]+=" "
graficoDSK[2]+=" "
graficoDSK[1]+=" "
;;
50)
graficoDSK[10]+="\u2588 "
graficoDSK[9]+="\u2588 "
graficoDSK[8]+="\u2588 "
graficoDSK[7]+="\u2588 "
graficoDSK[6]+="\u2584 "
graficoDSK[5]+=" "
graficoDSK[4]+=" "
graficoDSK[3]+=" "
graficoDSK[2]+=" "
graficoDSK[1]+=" "
;;
60)
graficoDSK[10]+="\u2588 "
graficoDSK[9]+="\u2588 "
graficoDSK[8]+="\u2588 "
graficoDSK[7]+="\u2588 "
graficoDSK[6]+="\u2588 "
graficoDSK[5]+="\u2584 "
graficoDSK[4]+=" "
graficoDSK[3]+=" "
graficoDSK[2]+=" "
graficoDSK[1]+=" "
;;
70)
graficoDSK[10]+="\u2588 "
graficoDSK[9]+="\u2588 "
graficoDSK[8]+="\u2588 "
graficoDSK[7]+="\u2588 "
graficoDSK[6]+="\u2588 "
graficoDSK[5]+="\u2588 "
graficoDSK[4]+="\u2584 "
graficoDSK[3]+=" "
graficoDSK[2]+=" "
graficoDSK[1]+=" "
;;
80)
graficoDSK[10]+="\u2588 "
graficoDSK[9]+="\u2588 "
graficoDSK[8]+="\u2588 "
graficoDSK[7]+="\u2588 "
graficoDSK[6]+="\u2588 "
graficoDSK[5]+="\u2588 "
graficoDSK[4]+="\u2588 "
graficoDSK[3]+="\u2584 "
graficoDSK[2]+=" "
graficoDSK[1]+=" "
;;
90)
graficoDSK[10]+="\u2588 "
graficoDSK[9]+="\u2588 "
graficoDSK[8]+="\u2588 "
graficoDSK[7]+="\u2588 "
graficoDSK[6]+="\u2588 "
graficoDSK[5]+="\u2588 "
graficoDSK[4]+="\u2588 "
graficoDSK[3]+="\u2588 "
graficoDSK[2]+="\u2584 "
graficoDSK[1]+=" "
;;
100)
graficoDSK[10]+="\u2588 "
graficoDSK[9]+="\u2588 "
graficoDSK[8]+="\u2588 "
graficoDSK[7]+="\u2588 "
graficoDSK[6]+="\u2588 "
graficoDSK[5]+="\u2588 "
graficoDSK[4]+="\u2588 "
graficoDSK[3]+="\u2588 "
graficoDSK[2]+="\u2588 "
graficoDSK[1]+="\u2584 "
;;
esac
done
for valorPS in "${ARRAY_PS[@]}";
do
case $valorPS in
0)
graficoPS[10]+=" "
graficoPS[9]+=" "
graficoPS[8]+=" "
graficoPS[7]+=" "
graficoPS[6]+=" "
graficoPS[5]+=" "
graficoPS[4]+=" "
graficoPS[3]+=" "
graficoPS[2]+=" "
graficoPS[1]+=" "
;;
10)
graficoPS[10]+="\u2584 "
graficoPS[9]+=" "
graficoPS[8]+=" "
graficoPS[7]+=" "
graficoPS[6]+=" "
graficoPS[5]+=" "
graficoPS[4]+=" "
graficoPS[3]+=" "
graficoPS[2]+=" "
graficoPS[1]+=" "
;;
20)
graficoPS[10]+="\u2588 "
graficoPS[9]+="\u2584 "
graficoPS[8]+=" "
graficoPS[7]+=" "
graficoPS[6]+=" "
graficoPS[5]+=" "
graficoPS[4]+=" "
graficoPS[3]+=" "
graficoPS[2]+=" "
graficoPS[1]+=" "
;;
30)
graficoPS[10]+="\u2588 "
graficoPS[9]+="\u2588 "
graficoPS[8]+="\u2584 "
graficoPS[7]+=" "
graficoPS[6]+=" "
graficoPS[5]+=" "
graficoPS[4]+=" "
graficoPS[3]+=" "
graficoPS[2]+=" "
graficoPS[1]+=" "
;;
40)
graficoPS[10]+="\u2588 "
graficoPS[9]+="\u2588 "
graficoPS[8]+="\u2588 "
graficoPS[7]+="\u2584 "
graficoPS[6]+=" "
graficoPS[5]+=" "
graficoPS[4]+=" "
graficoPS[3]+=" "
graficoPS[2]+=" "
graficoPS[1]+=" "
;;
50)
graficoPS[10]+="\u2588 "
graficoPS[9]+="\u2588 "
graficoPS[8]+="\u2588 "
graficoPS[7]+="\u2588 "
graficoPS[6]+="\u2584 "
graficoPS[5]+=" "
graficoPS[4]+=" "
graficoPS[3]+=" "
graficoPS[2]+=" "
graficoPS[1]+=" "
;;
60)
graficoPS[10]+="\u2588 "
graficoPS[9]+="\u2588 "
graficoPS[8]+="\u2588 "
graficoPS[7]+="\u2588 "
graficoPS[6]+="\u2588 "
graficoPS[5]+="\u2584 "
graficoPS[4]+=" "
graficoPS[3]+=" "
graficoPS[2]+=" "
graficoPS[1]+=" "
;;
70)
graficoPS[10]+="\u2588 "
graficoPS[9]+="\u2588 "
graficoPS[8]+="\u2588 "
graficoPS[7]+="\u2588 "
graficoPS[6]+="\u2588 "
graficoPS[5]+="\u2588 "
graficoPS[4]+="\u2584 "
graficoPS[3]+=" "
graficoPS[2]+=" "
graficoPS[1]+=" "
;;
80)
graficoPS[10]+="\u2588 "
graficoPS[9]+="\u2588 "
graficoPS[8]+="\u2588 "
graficoPS[7]+="\u2588 "
graficoPS[6]+="\u2588 "
graficoPS[5]+="\u2588 "
graficoPS[4]+="\u2588 "
graficoPS[3]+="\u2584 "
graficoPS[2]+=" "
graficoPS[1]+=" "
;;
90)
graficoPS[10]+="\u2588 "
graficoPS[9]+="\u2588 "
graficoPS[8]+="\u2588 "
graficoPS[7]+="\u2588 "
graficoPS[6]+="\u2588 "
graficoPS[5]+="\u2588 "
graficoPS[4]+="\u2588 "
graficoPS[3]+="\u2588 "
graficoPS[2]+="\u2584 "
graficoPS[1]+=" "
;;
100)
graficoPS[10]+="\u2588 "
graficoPS[9]+="\u2588 "
graficoPS[8]+="\u2588 "
graficoPS[7]+="\u2588 "
graficoPS[6]+="\u2588 "
graficoPS[5]+="\u2588 "
graficoPS[4]+="\u2588 "
graficoPS[3]+="\u2588 "
graficoPS[2]+="\u2588 "
graficoPS[1]+="\u2584 "
;;
esac
done
for valorTEMP in "${ARRAY_TEMP[@]}";
do
case $valorTEMP in
0)
graficoTEMP[10]+=" "
graficoTEMP[9]+=" "
graficoTEMP[8]+=" "
graficoTEMP[7]+=" "
graficoTEMP[6]+=" "
graficoTEMP[5]+=" "
graficoTEMP[4]+=" "
graficoTEMP[3]+=" "
graficoTEMP[2]+=" "
graficoTEMP[1]+=" "
;;
10)
graficoTEMP[10]+="\u2584 "
graficoTEMP[9]+=" "
graficoTEMP[8]+=" "
graficoTEMP[7]+=" "
graficoTEMP[6]+=" "
graficoTEMP[5]+=" "
graficoTEMP[4]+=" "
graficoTEMP[3]+=" "
graficoTEMP[2]+=" "
graficoTEMP[1]+=" "
;;
20)
graficoTEMP[10]+="\u2588 "
graficoTEMP[9]+="\u2584 "
graficoTEMP[8]+=" "
graficoTEMP[7]+=" "
graficoTEMP[6]+=" "
graficoTEMP[5]+=" "
graficoTEMP[4]+=" "
graficoTEMP[3]+=" "
graficoTEMP[2]+=" "
graficoTEMP[1]+=" "
;;
30)
graficoTEMP[10]+="\u2588 "
graficoTEMP[9]+="\u2588 "
graficoTEMP[8]+="\u2584 "
graficoTEMP[7]+=" "
graficoTEMP[6]+=" "
graficoTEMP[5]+=" "
graficoTEMP[4]+=" "
graficoTEMP[3]+=" "
graficoTEMP[2]+=" "
graficoTEMP[1]+=" "
;;
40)
graficoTEMP[10]+="\u2588 "
graficoTEMP[9]+="\u2588 "
graficoTEMP[8]+="\u2588 "
graficoTEMP[7]+="\u2584 "
graficoTEMP[6]+=" "
graficoTEMP[5]+=" "
graficoTEMP[4]+=" "
graficoTEMP[3]+=" "
graficoTEMP[2]+=" "
graficoTEMP[1]+=" "
;;
50)
graficoTEMP[10]+="\u2588 "
graficoTEMP[9]+="\u2588 "
graficoTEMP[8]+="\u2588 "
graficoTEMP[7]+="\u2588 "
graficoTEMP[6]+="\u2584 "
graficoTEMP[5]+=" "
graficoTEMP[4]+=" "
graficoTEMP[3]+=" "
graficoTEMP[2]+=" "
graficoTEMP[1]+=" "
;;
60)
graficoTEMP[10]+="\u2588 "
graficoTEMP[9]+="\u2588 "
graficoTEMP[8]+="\u2588 "
graficoTEMP[7]+="\u2588 "
graficoTEMP[6]+="\u2588 "
graficoTEMP[5]+="\u2584 "
graficoTEMP[4]+=" "
graficoTEMP[3]+=" "
graficoTEMP[2]+=" "
graficoTEMP[1]+=" "
;;
70)
graficoTEMP[10]+="\u2588 "
graficoTEMP[9]+="\u2588 "
graficoTEMP[8]+="\u2588 "
graficoTEMP[7]+="\u2588 "
graficoTEMP[6]+="\u2588 "
graficoTEMP[5]+="\u2588 "
graficoTEMP[4]+="\u2584 "
graficoTEMP[3]+=" "
graficoTEMP[2]+=" "
graficoTEMP[1]+=" "
;;
80)
graficoTEMP[10]+="\u2588 "
graficoTEMP[9]+="\u2588 "
graficoTEMP[8]+="\u2588 "
graficoTEMP[7]+="\u2588 "
graficoTEMP[6]+="\u2588 "
graficoTEMP[5]+="\u2588 "
graficoTEMP[4]+="\u2588 "
graficoTEMP[3]+="\u2584 "
graficoTEMP[2]+=" "
graficoTEMP[1]+=" "
;;
90)
graficoTEMP[10]+="\u2588 "
graficoTEMP[9]+="\u2588 "
graficoTEMP[8]+="\u2588 "
graficoTEMP[7]+="\u2588 "
graficoTEMP[6]+="\u2588 "
graficoTEMP[5]+="\u2588 "
graficoTEMP[4]+="\u2588 "
graficoTEMP[3]+="\u2588 "
graficoTEMP[2]+="\u2584 "
graficoTEMP[1]+=" "
;;
100)
graficoTEMP[10]+="\u2588 "
graficoTEMP[9]+="\u2588 "
graficoTEMP[8]+="\u2588 "
graficoTEMP[7]+="\u2588 "
graficoTEMP[6]+="\u2588 "
graficoTEMP[5]+="\u2588 "
graficoTEMP[4]+="\u2588 "
graficoTEMP[3]+="\u2588 "
graficoTEMP[2]+="\u2588 "
graficoTEMP[1]+="\u2584 "
;;
esac
done
clear
echo -e "\n\n\n\n"
for (( idx=0; idx < 12; idx++ )); do
echo -e "${graficoMEM[$idx]} ${graficoCPU[$idx]}"
done
echo -e "\n"
for (( idx=0; idx < 12; idx++ )); do
echo -e "${graficoDSK[$idx]} ${graficoPS[$idx]} ${graficoTEMP[$idx]}"
done
echo -e "\n"
return
}
function adicionarValores() {
TOTAL_MEM=$(free | head -n 2 | tail -n 1 | cut -d ' ' -f9) # Valor total da memória.
USADO_MEM=$(free | head -n 2 | tail -n 1 | cut -d ' ' -f14) # Valor usado da memória.
VALOR_MEM=$(($USADO_MEM * 100)) # O arredonda todas as divisões para o número inteiro menor, portanto multiplica-se por 100.
VALOR_MEM=$(($VALOR_MEM / $TOTAL_MEM)) # Aritmética para obtenção do valor de ocupação instantânea da memória.
MEDIA_MEM+=($VALOR_MEM)
VALOR_MEM=$(($VALOR_MEM/10)) # Arredondamento para o múltiplo de 10 inferior a VALOR_MEM.
VALOR_MEM=$(($VALOR_MEM * 10)) # Arredondamento para o múltiplo de 10 inferior a VALOR_MEM. Ex: (55/10) = 5.5 = 5; 5 * 10 = 50
for (( i = 0; i < 11; i++ ))
do
ARRAY_MEM[$i]=${ARRAY_MEM[i+1]}
done
ARRAY_MEM[9]=$VALOR_MEM
VALOR_CPU=$(top -n1 | head -n3 | tail -n1 | cut -d ' ' -f2 | rev | cut -c 3- | rev)
if [ $VALOR_CPU = " " ]; then
VALOR_CPU=$(top -n1 | head -n3 | tail -n1 | cut -d ' ' -f3 | rev | cut -c 3- | rev)
fi
MEDIA_CPU+=($VALOR_CPU)
VALOR_CPU=$(($VALOR_CPU / 10))
VALOR_CPU=$(($VALOR_CPU * 10))
for (( i = 0; i < 11; i++ ))
do
ARRAY_CPU[$i]=${ARRAY_CPU[i+1]}
done
ARRAY_CPU[9]=$VALOR_CPU
VALOR_DSK=$(df | grep "/dev/sda1" | cut -d ' ' -f12)
VALOR_DSK=${VALOR_DSK%?} # Remove o último carater do valor (%)
MEDIA_DSK+=($VALOR_DSK)
VALOR_DSK=$(($VALOR_DSK / 10))
VALOR_DSK=$(($VALOR_DSK * 10))
for (( i = 0; i < 11; i++ ))
do
ARRAY_DSK[$i]=${ARRAY_DSK[i+1]}
done
ARRAY_DSK[9]=$VALOR_DSK
VALOR_PS=$(ps aux --no-heading | wc -l)
MEDIA_PS+=($VALOR_PS)
if (( $VALOR_PS < 100 )); # Se o número de processos for inferior a 100
then
VALOR_PS=${VALOR_PS:0:1} # O primeiro dígito é extraido. Ex: 99 -> 9 -> 0 no gráfico
else # Caso contrário (>= 100)
VALOR_PS=${VALOR_PS:0:2} # Os dois primeiros dígitos são extraidos. Ex: 120 -> 12 -> 10 no gráfico
fi
VALOR_PS=$(($VALOR_PS / 10))
VALOR_PS=$(($VALOR_PS * 10))
for (( i = 0; i < 11; i++ ))
do
ARRAY_PS[$i]=${ARRAY_PS[i+1]} # Ex: ARRAY_PS[1] = ARRAY_PS[2]
done
ARRAY_PS[9]=$VALOR_PS # O último valor é preenchido com o valor obtido neste ciclo.
NUMCORES=$(sensors | wc -l) # Conta o número de linhas.
NUMCORES=$((NUMCORES-2)) # Utilizado posteriormente para extrair todas as linhas menos as duas primeiras.
CORES=$(sensors | tail -n$NUMCORES | cut -d ' ' -f9 | cut -c2-3) # Extrai as temperaturas (output já sanitizado)
VALOR_TEMP=0
for core in $CORES; do
((VALOR_TEMP+=$core)) # Para cada temperatura, adicionar tal valor à variável VALOR_TEMP
done
((VALOR_TEMP=$VALOR_TEMP/($NUMCORES-1))) # VALOR_TEMP passa a ser a média da temperatura de todos so cores. $NUMCORES inclui a contagem de uma linha em branco, pelo que essa linha é removida com $NUMCORES-1.
MEDIA_TEMP+=($VALOR_TEMP)
((VALOR_TEMP=$VALOR_TEMP / 10))
((VALOR_TEMP=$VALOR_TEMP * 10))
for (( i = 0; i < 11; i++ ))
do
ARRAY_TEMP[$i]=${ARRAY_TEMP[i+1]}
done
ARRAY_TEMP[9]=$VALOR_TEMP
return
}
function verificarParametros {
if ! [[ $refresh == ?(-)+([0-9]) ]];
then
echo -e "\e[91mUSO: $ status [refresh: INT]\trefresh: 0-\u221e" >&2;
exit;
fi
return
}
verificarParametros # Verificar se os paramêtros introduzidos no início estão corretos.
while (( 1 == 1)); do
adicionarValores
criarGraficos
(( verificacoesFeitas++ ))
sleep $refresh
done
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment