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
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
.logna á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\Anciense renomeá-los adicionando o prefixoARCHIVE_- Exemplo:
old_system_2024-12-15.log→ARCHIVE_old_system_2024-12-15.log
- Exemplo:
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
-
Estrutura do script: Seu script deve ser bem organizado com comentários explicando cada seção importante.
-
Idempotência: O script deve poder ser executado várias vezes sem causar erros.
Comandos PowerShell úteis
New-Item: Criar arquivos e pastasSet-Content/Add-Content: Escrever em arquivosGet-ChildItem: Listar arquivos e pastasSelect-String: Buscar texto em arquivosCopy-Item: Copiar arquivosMove-Item: Mover arquivosRename-Item: Renomear arquivosTest-Path: Verificar existência de arquivo/pastaGet-Date: Obter a data atual
Entregável
Você deve enviar no Omnivox seu script PowerShell chamado
gestion_logs.ps1.
Boa sorte!