sys_info - exibe o status do sistema

Publicado por Pedro Fernandes (última atualização em 01/12/2020)

[ Hits: 1.869 ]

Download sys_info

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ões atualizadas deste script

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.

Download 1583447892.sys_info


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).

Download 1604712914.sys_info


Esconder código-fonte

#!/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 <[email protected]>
#
#

#
#
# 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
#
#

Scripts recomendados

Script para limpeza de arquivos temporários em Sabayon Linux

Menu

Script para atualizao o Mcafee

Script para Conexão Automática com Internet a Rádio

Reiniciar modem via Shell Script


  

Comentários
[1] Comentário enviado por mauricio123 em 02/12/2020 - 22:48h



muito bom.
___________________________________________________________
[code]Conhecimento não se Leva para o Túmulo.
https://github.com/MauricioFerrari-NovaTrento [/code]

[2] Comentário enviado por sabe nada em 03/12/2020 - 23:42h


[1] Comentário enviado por mauricio123 em 02/12/2020 - 22:48h



muito bom.
___________________________________________________________
Obrigado.


Contribuir com comentário