Pular para o conteúdo principal

Prova final parte 2

Data de publicação: 2025-07-09 13h00
Data de entrega: 2025-07-09 15h00
Modo de entrega: Omnivox
Modalidade: Prova individual
Material permitido: Anotações de aula, seus trabalhos práticos e exercícios, documentação online, mas sem ajuda externa (sem comunicação com outras pessoas)
Uso de IA: Conforme a política do Colégio. Você pode usar IA para pesquisa, mas o código deve ser inteiramente escrito por você.

Script de automação para gerenciamento de logs do sistema​

Contexto​

Você é administrador de sistemas em uma empresa. Seu gestor pediu para você criar um script PowerShell para automatizar o gerenciamento dos arquivos de logs. Esse script deve permitir limpar, organizar e analisar os logs de forma regular.

Objetivos do trabalho (100 pontos)​

Seu script PowerShell deverá realizar automaticamente as seguintes ações:

1. Criação do ambiente de trabalho (25 pontos)​

Seu script deve usar a variável de ambiente ENTERPRISE_DATA (já definida com um caminho válido, por exemplo C:\EnterpriseLogs) para criar automaticamente a seguinte estrutura de pastas em $env:ENTERPRISE_DATA\AdminLogs:

$env:ENTERPRISE_DATA\AdminLogs
│
├── Logs_Actuels
│ ├── Systeme
│ ├── Applications
│ └── Securite
├── Archives
│ └── Anciens
└── Rapports
atenção

Pode ser que as pastas já existam. Seu script deve verificar a existência delas e não causar erros caso as pastas já estejam presentes.

Em seguida, o script também deve criar 5 arquivos de logs fictícios na pasta Logs_Actuels\Systeme:

  • system_2025-07-01.log (conteúdo: "INFO: Inicialização do sistema bem-sucedida")
  • system_2025-07-05.log (conteúdo: "ERROR: Erro no disco rígido")
  • system_2025-07-08.log (conteúdo: "WARNING: Memória baixa")
  • system_2025-07-09.log (conteúdo: "INFO: Sistema atualizado")
  • old_system_2024-12-15.log (conteúdo: "INFO: Log antigo")

2. Análise e busca nos logs (25 pontos)​

Seu script deve:

  • Buscar todos os arquivos .log na árvore $env:ENTERPRISE_DATA\AdminLogs\Logs_Actuels
  • Criar uma lista dos arquivos que contêm a palavra "ERROR" e salvar em $env:ENTERPRISE_DATA\AdminLogs\Rapports\erros_encontrados.txt

3. Arquivamento automático (25 pontos)​

Seu script deve:

  • Identificar todos os arquivos de logs com data superior a 7 dias (utilize a data no nome do arquivo)
  • Mover esses arquivos antigos para a pasta Archives\Anciens e renomeá-los adicionando o prefixo ARCHIVE_
    • Exemplo: old_system_2024-12-15.log → ARCHIVE_old_system_2024-12-15.log
atenção

Atenção, pode ser que já existam arquivos na pasta Archives\Anciens. Seu script não deve adicionar ARCHIVE_ a arquivos já arquivados. (Portanto, não deve haver arquivo chamado ARCHIVE_ARCHIVE_old_system_2024-12-15.log)

Seu script pode sobrescrever um arquivo existente se o nome for idêntico.

4. Relatório final e verificação (25 pontos)​

Seu script deve gerar um relatório final (relatorio_gerenciamento_logs.txt) na pasta $env:ENTERPRISE_DATA\AdminLogs\Rapports contendo:

  • A data e hora de execução do script
  • O número de arquivos arquivados
  • O número de arquivos contendo erros
  • Uma mensagem de confirmação: "Script executado com sucesso"

Requisitos técnicos​

  1. Estrutura do script: Seu script deve ser bem organizado com comentários explicando cada seção importante.

  2. Idempotência: O script deve poder ser executado várias vezes sem causar erros.

Comandos PowerShell úteis​

  • New-Item: Criar arquivos e pastas
  • Set-Content / Add-Content: Escrever em arquivos
  • Get-ChildItem: Listar arquivos e pastas
  • Select-String: Buscar texto em arquivos
  • Copy-Item: Copiar arquivos
  • Move-Item: Mover arquivos
  • Rename-Item: Renomear arquivos
  • Test-Path: Verificar existência de arquivo/pasta
  • Get-Date: Obter a data atual

Entregável​

Você deve enviar no Omnivox seu script PowerShell chamado gestion_logs.ps1.

Boa sorte!