sys_info - exibe o status do sistema
Publicado por Pedro Fernandes (última atualização em 01/12/2020)
[ Hits: 3.062 ]
Homepage: https://github.com/PedroF37
Download 1583447892.sys_info (versão 2)
Download 1604712914.sys_info (versão 3)
Versão mais enxuta, limpa e menor de outro script meu chamado "status".
sys_info -- imprime na tela ou em arquivo de texto o status do sistema
infos: -- uptime, espaço de disco, espaço de arquivos, memória e temperatura
Ao visualizar na tela é aconselhado usar paginador -- less | more etc, ou no script na primeira vez que a função relatorio é chamada colocar o | paginador.
Versão 2 - Enviado por Pedro Fernandes em 05/03/2020
Changelog: 1 - "Embuti" a declaração case no corpo do if
no final do script. O if garante que
ou passa 0 ou 1 argumento apenas, e o case
garante que os argumentos são apenas -h ou -f
Estando separados não estava dando muito certo.
2 - Na parte que mostra a temperatura (sensors), removi o
pipe "| gawk", que não faz falta. Acho que estava
entusiasmado com o gawk e acabei por usar á toa.
Versão 3 - Enviado por Pedro Fernandes em 06/11/2020
Changelog: Versão 3.0 - Corrigido erro de mostragem de espaço no disco.
Ex.: se sda1 aparece como /dev/root, então não
mostrava. corrigi a regex, agora está - "/^\/dev\/[a-z]+[0-9]?/"
- Corrigido mostragem do uptime do sistema.
Reparei que no openSUSE o campo que mostrava o uptime
era o campo 4 e não o 3.
Expressão do gawk agora usa o 'FS=","' (field separator)
para mostrar o campo $1. (HH:MM:SS up HH:MM).
#!/bin/bash # # # sys_info -- imprime na tela ou em arquivo de texto # o status do sistema. # # # # # infos: -- uptime, espaço de disco, espaço de arquivos # memória e temperatura # # # # uso: -- status | status -f | status -h # Se for visualizado na tela é # aconselhado usar paginador (less|most) # status | most ou na primeira vez que # a função relatório é chamada perto do # final do script, colocar em frente da # chamada | more/most/less # # # # # autor -- pedro fernandes <pedrobfernandes32@protonmail.com> # # # # # Constantes # # SCRIPT=$(basename $0) DATA=$(date "+%d-%m-%Y %H:%M") DATA_LOG=$(date '+%d%m%y') TITULO="Relatório do Sistema para: $HOSTNAME" GERADO="Relatório Gerado: $DATA, por $USER" # # # Funcoes # # function uso { echo -e "Uso: $SCRIPT | $SCRIPT [ -f | -h ]\n" echo -e "Onde: \n" echo "-f para relatório ser salvo em arquivo no HOME" echo "-h para mostrar esta ajuda" echo -e "\nAo visualizar na tela use paginador:" echo -e "Ex: $SCRIPT | less\n" } # # function relatorio { echo -e "\n\t\t\t\t\t\t$TITULO\n" echo -e "\n\t\t\t\t\t\t$GERADO\n\n\n" # # uptime | gawk 'BEGIN {printf "Uptime do Sistema:" "\n"} {print $3 "\n"}' | sed 's/,$//' | sed 'N; s/\n/ /' # # echo -e "\n\nEspaço Ocupado no(s) disco(s):\n" df -h | gawk 'BEGIN { printf "Unidade" "\t\t" "Total" "\t" "Usado" "\t" "Disponivel" "\t" "Montd." "\n"} /dev.sd[a-z][1-9]/{print $1, "\t" $2, "\t" $3, "\t" $4, "\t\t" $6}' # # echo -e "\n\n\nOs 10 diretórios mais cheios no(s) home(s):\n" # if [ $UID -eq 0 ] then lista=/home/* else lista=$HOME fi # for dir in $lista do echo -e "\nDiretório $dir:\n" du -Sh $dir 2> /dev/null | sort -rh | sed '{11,$D; =}' | sed 'N; s/\n/ /' | gawk '{printf $1 ":" "\t" $2 "\t" $3 "\n"}' done # # echo -e "\n\n\nMemória do Sistema:\n" free -h | sed '$d' | sed '1d' | gawk 'BEGIN { printf "Total" "\t" "Usada" "\t" "Livre" "\t" "Buffer/Cache" "\t" "Disponivel\n"} {printf $2 "\t" $3 "\t" $4 "\t\t" $6 "\t" $7 "\n"}' # # echo -e "\n\n\nTempraturas atuais:\n" sensors | gawk '{printf $0 "\n"}' # # echo echo "É tudo." } # # # Inicio # # if [ $# -eq 0 ] then relatorio elif [ $# -gt 1 ] then echo "Demasiados argumentos..." sleep 2 clear uso exit 1 fi # # case $1 in -f) relatorio > $HOME/$SCRIPT-$DATA_LOG.log echo "O relatório foi salvo em: $HOME/$SCRIPT-$DATA_LOG.log" ;; -h) uso ;; esac # #
Converter arquivo em PDF e enviar por e-mail pelo terminal
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Como renomear arquivos de letras maiúsculas para minúsculas
Imprimindo no formato livreto no Linux
Vim - incrementando números em substituição
Efeito "livro" em arquivos PDF
Como resolver o erro no CUPS: Unable to get list of printer drivers
Como testar Standard Hotplug Controller (1)
Trocando modo IDE por AHCI (1)
Desempenho abaixo do esperado - travadas e congelamento do sistema ope... (5)
[Python] Automação de scan de vulnerabilidades
[Python] Script para analise de superficie de ataque
[Shell Script] Novo script para redimensionar, rotacionar, converter e espelhar arquivos de imagem
[Shell Script] Iniciador de DOOM (DSDA-DOOM, Doom Retro ou Woof!)
[Shell Script] Script para adicionar bordas às imagens de uma pasta