Status do sistema
Publicado por Pedro Fernandes (última atualização em 24/07/2019)
[ Hits: 4.123 ]
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
DELETAR arquivos a X semanas passadas
Baixando e instalando BrOffice 3 no Ubuntu
Usando Shell para incluir múltiplos usuários no Windows
Shell Script básico para gerenciar usuários e bancos no MySQL ou MariaDB
Atualizar o macOS no Mac - Opencore Legacy Patcher
Crie alias para as tarefas que possuam longas linhas de comando - bash e zsh
Criando um gateway de internet com o Debian
Configuração básica do Conky para mostrar informações sobre a sua máquina no Desktop
Aprenda a criar músicas com Inteligência Artificial usando Suno AI
Instalando e usando o Dconf Editor, o "regedit" para Linux
Como instalar o navegador TOR no seu Linux
Instalando Zoom Client no Ubuntu 24.04 LTS
Manjaro Substituindo Ubuntu no Desktop (14)
problemas com artefatos na instalação (29)
Dificuldade em ler binário (18)
Encriptografa... as particoes com LUKS, o que poderia dar errado? (4)