Status do sistema
Publicado por Pedro Fernandes (última atualização em 24/07/2019)
[ Hits: 4.226 ]
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
Manipular serviços no Runit (Void Linux)
Comando grub2-update no Fedora
zwtsc - cliente gráfico para Terminal Service
Enviar mensagem ao usuário trabalhando com as opções do php.ini
Meu Fork do Plugin de Integração do CVS para o KDevelop
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Compartilhamento de Rede com samba em modo Público/Anônimo de forma simples, rápido e fácil
Cups: Mapear/listar todas as impressoras de outro Servidor CUPS de forma rápida e fácil
Criando uma VPC na AWS via CLI
Tem como instalar o gerenciador AMD Adrenalin no Ubuntu 24.04? (6)