Status do sistema
Publicado por Pedro Fernandes (última atualização em 24/07/2019)
[ Hits: 4.331 ]
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
Verificar o IP válido da sua conexão na internet
Sistema de Gestão de Protocolos em YAD
Script simples para ripar CDs de áudio em mp3 com uso do CDDB para nomear as faixas.
Aprenda a Gerenciar Permissões de Arquivos no Linux
Como transformar um áudio em vídeo com efeito de forma de onda (wave form)
Como aprovar Pull Requests em seu repositório Github via linha de comando
Visualizar arquivos em formato markdown (ex.: README.md) pelo terminal
Dando - teoricamente - um gás no Gnome-Shell do Arch Linux
Como instalar o Google Cloud CLI no Ubuntu/Debian
Mantenha seu Sistema Leve e Rápido com a Limpeza do APT!
Procurando vídeos de YouTube pelo terminal e assistindo via mpv (2025)
O que você está ouvindo agora? [2] (183)
Gestão de Ambiente em uma rede Linux (2)
Ajuda Pra Melhoria do NFTABLES. (7)
Zorin OS - Virtual Box não consigo abrir maquinas virtuais (4)