Файлы журнала IIS 7 Auto Delete?
Есть ли какая-либо функция в IIS 7, которая автоматически удаляет файлы журналов старше указанного количества дней?
Я знаю, что это можно сделать, написав script (и запустив его еженедельно) или службу Windows, но мне было интересно, есть ли какая-либо встроенная функция или что-то, что это делает.
Кроме того, в настоящее время мы отключились, так как он складывает большое количество пространства. Будет ли это проблемой?
Ответы
Ответ 1
Вы можете создать задачу, которая выполняется ежедневно с помощью "Администрирование" > "Планировщик заданий".
Задайте задачу для выполнения следующей команды:
forfiles /p "C:\inetpub\logs\LogFiles" /s /m *.* /c "cmd /c Del @path" /d -7
Эта команда предназначена для IIS7, и она удаляет все файлы журналов, которые являются неделями и старше.
Вы можете настроить количество дней, изменив значение /d
arg.
Ответ 2
Одна партия строк script:
forfiles /p C:\inetpub\logs /s /m *.log /d -14 /c "cmd /c del /q @file"
Измените параметр /d, чтобы изменить количество дней, когда файл журнала зависает перед удалением. Параметр /s также подгружает подкаталоги.
Ссылка: http://debug.ga/iis-log-purging/
Ответ 3
Аналогичное решение, но в powershell.
Я установил задачу для запуска powershell со следующей строкой в качестве аргумента.
dir D:\IISLogs |where { ((get-date)-$_.LastWriteTime).days -gt 15 }| remove-item -force
Он удаляет все файлы в папке D:\IISLOgs старше 15 дней.
Ответ 4
Другой жизнеспособный однослойный Powershell:
Get-ChildItem -Path c:\inetpub\logs\logfiles\w3svc*\*.log | where {$_.LastWriteTime -lt (get-date).AddDays(-180)} | Remove-Item -force
В случае, если $_.LastWriteTime
не работает, вы можете использовать $PSItem.LastWriteTime
вместо этого.
Для получения дополнительной информации и других рекомендаций по использованию дискового пространства для дискового пространства IIS LogFiles, я также предлагаю прочитать этот пост.