Created
July 19, 2019 15:30
-
-
Save carlos-menezes/fc8713febddb88d9137b94fe851a8abd to your computer and use it in GitHub Desktop.
Bash system status utility.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/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