sys_info - exibe o status do sistema
Publicado por Pedro Fernandes (última atualização em 01/12/2020)
[ Hits: 3.461 ]
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
#
#
Monta e desmonta o CD-ROM automaticamente
Script para conversao de video compativel com PS3
Cirurgia para acelerar o openSUSE em HD externo via USB
Void Server como Domain Control
Modo Simples de Baixar e Usar o bash-completion
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
Atualizar Linux Mint 22.2 para 22.3 beta
Jogar games da Battle.net no Linux com Faugus Launcher
Como fazer a Instalação de aplicativos para acesso remoto ao Linux
Conky, alerta de temperatura alta (10)
Assisti Avatar 3: Fogo e Cinzas (3)
Duas Pasta Pessoal Aparecendo no Ubuntu 24.04.3 LTS (42)









