Status do sistema
Publicado por Pedro Fernandes (última atualização em 24/07/2019)
[ Hits: 4.445 ]
Homepage: https://github.com/PedroF37
Download 1561441124.status (versão 2)
Script para mostrar o status do sistema:
Espaço em disco; df
Espaço ocupado pelos diretórios e ficheiros; du
Memória; free
Temperatura da cpu; sensors
Tempo e carga do sistema; uptime
Conexão ou banda atual de download e upload; speedtest-cli ou simples ping
Pode tanto ser usado como usuário normal, como pelo root.
Pode imprimir a informação na tela ou armazenar em arquivo de texto para análise posterior.
Versão 2 - Enviado por Pedro Fernandes em 25/06/2019
Changelog: Script status versão 1.1 (final)
Changelog:
Uma pequena e única mudança:
Função "conect"; linhas 116 e 117 (no meu editor)
Se o ping dá erro, não segue mais com o resto da função, pois se dá erro não vale
a pena testar velocidade de download/upload.
Sendo assim adicionei um "sleep 3" e logo de seguida um "return", para nem tentar
usar o speedtest, e ao invés disso saltar para a próxima função.
#!/bin/bash
######################################################################
#
# status : script para mostrar o status do sistema:
#
# Espaço em disco; df
# Espaço ocupado pelos diretorios e ficheiros; du
# Memoria; free
# Temperatura da cpu; sensors
# Tempo e carga do sistema; uptime
# Conexão ou banda atual de download e upload; speedtest-cli ou simples ping
#
# Pode tanto ser usado como usuário normal, como pelo root
#
# Pedro Fernandes
#
#######################################################################
#######################################################################
#
# Constantes
PROGRAMA="$(basename "$0")"
DATA="$(date "+%d-%m-%Y %H:%M" )"
TITLE="Relatório do sistema para $HOSTNAME"
GERADO="Relatório gerado: $DATA, por $USER"
#
#######################################################################
#######################################################################
#
# Funções
# ajuda
usg () {
echo -e "\n$PROGRAMA: uso: $PROGRAMA [ -f ] [ -h ].
Script que analisa o status do sistema:
Espaço ocupado em disco;
Espaço ocupado por arquivos no HOME;
Memória livre, ocupada em cache/buffer;
Temperatura do sistema;
Tempo de atividade e carga média do sistema;
Conexão com o ping, ou banda de download e upload (tem que ter programa speedtest-cli).
Se o script for chamado com o parâmetro [ -f ], o script enviará a saída
para um arquivo de texto no seu HOME chamado "/home/usuario/status.txt", ou,
"/root/status_root.txt", caso o script seja rodado como usuário root.
Se o script for chamado com o parâmetro [ -h ], então este mesmo texto
será mostrado.
Caso o script seja chamado sem parâmetro algum, então a saída simplesmente
será exibida na tela."
exit
}
# Tempo e carga
tempo_carga () {
echo -e "\nTempo e carga média do sistema:"
cat <<- _EOF_
$(uptime)
_EOF_
return
}
# Espaço em disco
disk_usage () {
echo -e "\nEspaço ocupado em disco:"
cat <<- _EOF_
$(df -h)
_EOF_
return
}
# Espaço do home
home_space () {
local format="%8s%10s%10s\n"
local i dir_list total_files total_dirs total_size user_name
if [[ "$(id -u)" -eq 0 ]]; then
dir_list=/home/*
user_name="Todos os usuários"
else
dir_list="$HOME"
user_name="$USER"
fi
echo -e "\nUtilização de espaço no HOME ($user_name):"
for i in $dir_list; do
total_files="$(find "$i" -type f 2>/dev/null | wc -l)"
total_dirs="$(find "$i" -type d 2>/dev/null | wc -l)"
total_size="$(du -sh "$i" 2>/dev/null | cut -f 1)"
echo -e "\n$i"
printf "$format" "Diretórios" "Arquivos" "Tamanho"
printf "$format" "--------------" "------------" "-------------"
printf "$format" "$total_dirs" "$total_files" "$total_size"
done
return
}
#conexão
conect () {
echo -e "\nConexão......."
if ! ping -c2 www.google.com &>/dev/null; then
echo -e "\nParece estar desconectado[a].....
Não iremos proseguir com o teste."
else
echo -e "\nConexão encontrada........."
fi
if [[ -n "$(which speedtest-cli)" ]]; then
echo -e "\nVelocidade de download e upload, (speedtest-cli)......"
speedtest-cli
else
echo -e "\nQualidade da connexão usando o ping......."
ping -c5 www.google.com
fi
return
}
# Memória livre e ocupada
mem () {
echo -e "\nMemória total, ocupada e livre:"
cat <<- _EOF_
$(free -h)
_EOF_
sleep 3
return
}
# Temperatura
temp () {
echo -e "\nTemperatura atual:"
cat <<- _EOF_
$(sensors)
_EOF_
return
}
# Chamando as funções
prog () {
echo -e "\n$TITLE"
echo -e "\n$GERADO"
tempo_carga
disk_usage
home_space
conect
mem
temp
}
#
######################################################################
######################################################################
#
# Programa
if [[ -z "$1" ]]; then
prog
echo -e "\nFinalizamos por aqui......"
sleep 3
exit
fi
# Se tem parâmetro qual foi?
if [[ -n "$1" ]]; then
case "$1" in
-f) arquivo=1
;;
-h) usg
exit
;;
*) usg
exit 1
;;
esac
fi
# Tratando do parâmetro "-f (arquivo)"
if [[ -n "$arquivo" ]]; then
if [[ "$(id -u)" -eq 0 ]]; then
echo -e "\nAguarde enquanto criamos o arquivo com os dados......
Pode demorar um pouco......"
prog &>/root/status_root.txt
echo -e "\nArquivo salvo em /root/status_root.txt."
else
echo -e "\nAguarde enquanto criamos o arquivo com os dados......
Pode demorar um pouco......"
prog &>/home/$USER/status.txt
echo -e "\nArquivo salvo em /home/$USER/status.txt."
fi
sleep 2
echo -e "\nSaíndo agora do programa......"
fi
#
######################################################################
#
exit
Compilador automatizado de kernel Linux (para BSRSoft ServerUX II, Debian, Ubuntu e Debians-like)
Ajuda a usar o comando ln [SCRIPT]
Backup dos arquivos e diretórios de um servidor com XMAIL e Iptables para um servidor central de Bac
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
IA Turbina o Desktop Linux enquanto distros renovam forças
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Como realizar um ataque de força bruta para desobrir senhas?
Como usar Gpaste no ambiente Cinnamon
Atualizando o Fedora 42 para 43
Pergunta: Meu teclado não está respondendo direito como e consertar? (2)
Secure boot, artigo interessante, nada técnico. (6)
SQLITE não quer funcionar no LINUX LMDE6 64 com Lazaruz 4.2 64bit (n... (0)









