sys_info - exibe o status do sistema
Publicado por Pedro Fernandes (última atualização em 01/12/2020)
[ Hits: 3.550 ]
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
#
#
Script para desmontar partição/unidade
Faça suas próprias atualizações de pacotes/programas no Void Linux e torne-se um Contribuidor
Como rodar o Folding@home no Linux
Criando um painel de controle (Dashboard) para seu servidor com o Homepage
O Abismo entre o Código e o Chão: Saltos Tecnológicos e a Exclusão Estrutural no Brasil
Instalar e Configurar a santíssima trindade (PAP) no Void Linux
Pisando no acelerador do Linux Mint: Kernel XanMod, zRAM e Ajustes de Swap
Como compilar kernel no Linux Mint
Lançamento do Brutal DOOM test 6
Consertando o erro no Brave de webgl
Solução para ter de volta as bordas e barra de títulos das janelas em zenity no Debian 13.x
Seno, Coseno, Tangente em CLIPPER (1)
Inserir uma URL num arquvo pelo Ubuntu (CLIPPER) (0)
VMWare Player não conecta na rede nem consigo intercambiar arquivos (1)









