Um problema comuns nos ambientes de aplicações no IIS é o enchimento do disco, que degrada ou interrompe o serviço por completo, afetando a experiência do usuário e a operação geral do negócio. Portanto, a gestão eficiente do espaço em disco é uma parte vital da manutenção do servidor e, neste caso, criar uma rotina de limpeza dos logs do IIS de forma automática pode evitar problemas e facilitar o dia da equipe.

Os logs do IIS registram todas as atividades do servidor e, consequentemente, ocupam espaço rapidamente no disco. Portanto, implementar uma rotina de limpeza regular dos logs é uma prática essencial para liberar espaço, permitindo, assim, uma administração mais eficiente e proativa do servidor.

Princípios para a rotina automática

Usaremos como sugestão apagar todos os logs com mais de 90 dias e compactar todos os demais logs (pare reduzir o consumo em disco. Além disso usaremos como referência nossos posts sobre Comando no Windows para apagar arquivos com mais de X dias e de Criar rotina de limpeza de arquivos temporários dos usuários, adaptando para o escopo definido para criar uma rotina de limpeza e uma outra rotina para compactar os logs do IIS.

Criando uma tarefa agendada para limpeza dos logs

Execute os procedimentos abaixo, alterando as partes em cinza, conforme sua realidade.

Para criar uma rotina para apagar os logs do IIS com mais de 60 dias, no servidor abra a ferramenta Task Scheduller (ou Tarefas Agendadas), crie uma nova tarefa com as seguintes configurações:

  • Na aba General:
    • Em Name, insira Clean IIS Log Files
    • Em Account, deixe SYSTEM
    • Marque: Run whether user is logged on or not
    • Marque: Run with highest privileges
  • Na aba Triggers, adicione uma nova com a seguinte configuração:
    • Begin the task: On a Schedule ;
    • Settings: Configurado Daily, 22:00PM com Recur every 1 day ;
    • Advanced Settings, deixe marcado Enabled;
    • Clique em OK para voltar a tela anterior;
  • Na aba Actions, adicione uma nova com a seguinte configuração:
    • Em Action, coloque Start a program
    • Em Program, coloque forfiles.exe
    • Em Arguments, coloque -p C:\inetpub\logs\LogFiles -s -m . -d –60 -c “cmd /c del /q @Path”
    • Clique em OK para voltar a tela anterior;
  • Na aba Conditions deixe todas as opções desmarcadas;
  • Na aba Settings:
    • Deixe marcado apenas a opção Allow task to be run on demand ;
    • Deixe configurado como Do not start a new instance ;
  • Clique em OK

Depois de finalizada a primeira ação, vamos agora também compactar os logs dos dias anteriores para economizar espaço em disco. Para isso, ainda no Task Scheduler, crie uma nova tarefa com as seguintes configurações:

  • Na aba General:
    • Em Name, insira Compact IIS Log
    • Em Account, deixe SYSTEM
    • Marque: Run whether user is logged on or not
    • Marque: Run with highest privileges
  • Na aba Triggers, adicione uma nova com a seguinte configuração:
    • Begin the task: On a Schedule ;
    • Settings: Configurado Daily, 23:00PM com Recur every 1 day ;
    • Advanced Settings, deixe marcado Enabled;
    • Clique em OK para voltar a tela anterior;
  • Na aba Actions, adicione uma nova com a seguinte configuração:
    • Em Action, coloque Start a program
    • Em Program, coloque forfiles.exe
    • Em Arguments, coloque -p C:\inetpub\logs\LogFiles -s -m . -d -2 -c “cmd /c compact /c @Path”
    • Clique em OK para voltar a tela anterior;
  • Na aba Conditions deixe todas as opções desmarcadas;
  • Na aba Settings:
    • Deixe marcado apenas a opção Allow task to be run on demand ;
    • Deixe configurado como Do not start a new instance ;
  • Clique em OK

Se possível, teste as tarefas agendadas, clicando com o botão direito sobre ela e mandando executar, em espere até finalizar (clique em F5 para atualizar o status) e verifique se a ação ocorreu conforme o esperado.

Caso deseje, pode criar uma GPO para aplicar em todos os servidores (caso estejam todos na mesma OU, ou sejam de um mesmo grupo, por exemplo).

Fontes/Referências

NVLAN – Comando no Windows para apagar arquivos com mais de X dias
NVLAN – Criar rotina de limpeza de arquivos temporários dos usuários

Mais Informações

Esperamos ter te ajudado e estaremos sempre a disposição para mais informações.

Se você tem interesse em algum assunto específico, tem alguma dúvida, precisa de ajuda, ou quer sugerir um post, entre em contato conosco pelo e-mail equipe@nvlan.com.br.

NVLAN - Consultoria