#!/bin/bash

# Script: system_report.sh
# Descrição: Coleta informações do sistema e gera relatório em texto

# Configurações
REPORT_DIR="/var/log/system_reports"
REPORT_FILE="${REPORT_DIR}/system_report_$(date +%Y%m%d_%H%M%S).txt"

# Criar diretório se não existir
mkdir -p "$REPORT_DIR"

# Gerar relatório
{
    echo "========================================="
    echo "RELATÓRIO DO SISTEMA"
    echo "Data: $(date '+%d/%m/%Y %H:%M:%S')"
    echo "Hostname: $(hostname)"
    echo "========================================="
    echo ""
    
    echo "INFORMAÇÕES DE CPU"
    echo "-----------------------------------------"
    echo "Modelo: $(grep "model name" /proc/cpuinfo | head -1 | cut -d':' -f2 | xargs)"
    echo "Núcleos: $(nproc)"
    echo "Uso da CPU: $(top -bn1 | grep "Cpu(s)" | awk '{print $2}' | cut -d'%' -f1)%%"
    echo "Load Average: $(uptime | awk -F'load average:' '{print $2}' | xargs)"
    echo ""
    
    echo "INFORMAÇÕES DE MEMÓRIA"
    echo "-----------------------------------------"
    echo "Memória Total: $(free -h | grep "^Mem:" | awk '{print $2}')"
    echo "Memória Usada: $(free -h | grep "^Mem:" | awk '{print $3}')"
    echo "Memória Livre: $(free -h | grep "^Mem:" | awk '{print $4}')"
    echo "Swap Total: $(free -h | grep "^Swap:" | awk '{print $2}')"
    echo "Swap Usada: $(free -h | grep "^Swap:" | awk '{print $3}')"
    echo ""
    
    echo "INFORMAÇÕES DE DISCO"
    echo "-----------------------------------------"
    df -h | grep -E "^/dev/" | while read line; do
        echo "$line"
    done
    echo ""
    
    echo "INFORMAÇÕES DE TEMPERATURA"
    echo "-----------------------------------------"
    if command -v sensors &> /dev/null; then
        sensors | grep -E "Core|Package|temp" | head -5
    else
        echo "lm-sensors não instalado. Instale com: sudo apt install lm-sensors"
        echo "Ou verifique em: /sys/class/thermal/thermal_zone*/temp"
        if [ -d "/sys/class/thermal" ]; then
            for zone in /sys/class/thermal/thermal_zone*; do
                if [ -f "$zone/temp" ]; then
                    temp=$(cat "$zone/temp")
                    temp_c=$((temp / 1000))
                    echo "$(basename $zone): ${temp_c}°C"
                fi
            done
        fi
    fi
    echo ""
    
    echo "INFORMAÇÕES ADICIONAIS"
    echo "-----------------------------------------"
    echo "Kernel: $(uname -r)"
    echo "Uptime: $(uptime -p)"
    echo "Usuários logados: $(who | wc -l)"
    echo "Processos em execução: $(ps aux | wc -l)"
    echo ""
    echo "========================================="
    echo "Relatório gerado em: $(date '+%d/%m/%Y %H:%M:%S')"
    echo "========================================="
    
} > "$REPORT_FILE"

# Definir permissões
chmod 644 "$REPORT_FILE"

echo "Relatório gerado com sucesso: $REPORT_FILE"