2011-08-02 22 views
47

¿Hay alguna función en IIS 7 que elimine automáticamente los archivos de registro anteriores a un determinado número de días?IIS 7 Log Files Auto Delete?

Soy consciente de que esto se puede lograr al escribir un script (y ejecutarlo semanalmente) o un servicio de Windows, pero me preguntaba si hay alguna función incorporada o algo que lo haga.

Además, actualmente hemos cerrado la sesión ya que está acumulando una gran cantidad de espacio. será eso un problema?

+0

No es que yo sepa y acepto que debe haberlo. Uso una secuencia de comandos de PowerShell para comprimirlos y archivarlos. Los archivos de registro a veces pueden ser útiles para obtener estadísticas para la facturación o para investigar intentos de pirateo. –

+0

Para todos los votos hacia arriba, favoritos y respuestas, esto está claramente fuera del tema y pertenece a [Server Fault] (http://serverfault.com). –

Respuesta

90

Puede crear una tarea que se ejecute diariamente usando Herramientas administrativas> Programador de tareas.

Indica tu tarea se ejecute el siguiente comando:

forfiles /p "C:\inetpub\logs\LogFiles" /s /m *.* /c "cmd /c Del @path" /d -7 

Este comando es para IIS7, y elimina todos los archivos de registro que son una semana o más.

Puede ajustar el número de días cambiando el valor de /d arg.

+0

Esto era exactamente lo que necesitaba. Los registros ya se están realizando copias de seguridad fuera del sitio, por lo que eliminar los antiguos con esta tarea funciona muy bien para mí. – mikeschuld

+1

simple y efectivo :) – Spence

+2

¡perfecto! y otra gran ventaja para hacerme consciente del comando 'forfiles', gracias :) –

1

Solución similar pero en powershell.

He creado una tarea a ejecutar PowerShell con la siguiente línea como un argumento ..

dir D:\IISLogs |where { ((get-date)-$_.LastWriteTime).days -gt 15 }| remove-item -force 

Se elimina todos los archivos en el directorio D: \ IISLOgs carpeta de más de 15 días.

3

Una línea de comandos por lotes:

forfiles /p C:\inetpub\logs /s /m *.log /d -14 /c "cmd /c del /q @file" 

Modificar el modificador/d para cambiar el número de días que un archivo de registro se cuelga alrededor antes de la eliminación. El modificador/s recursivamente subdirectorios también.

Ref: http://debug.ga/iis-log-purging/

+0

Impresionante, gracias, ¡funciona genial! – cvocvo

0

Otra viable Powershell de una sola línea:

Get-ChildItem -Path c:\inetpub\logs\logfiles\w3svc*\*.log | where {$_.LastWriteTime -lt (get-date).AddDays(-180)} | Remove-Item -force 

En caso $_.LastWriteTime no funciona, puede utilizar $PSItem.LastWriteTime lugar.

Para obtener más información y otras sugerencias para aprovechar la carpeta IIS LogFiles del uso del espacio en HDD, también sugiero read this post.