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 hidden or 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